1. func(int arr[], int n); 和 func(int *arr, int n);这两个函数是等价的。
func(int arr[], int n); func(int *arr, int n); //这两个函数是等价的
2. 数组是有前后每个值的下标之间是有数学关联的。例如:数组a第一个值的下标是i,数组长度为n,最末一个值的下标则是n-1-i。当i递增时,(n-1-i)也随着递减。
3. 函数用数组作为参数,例如func(int a[]);本身就是把数组的地址传入函数中,所以如果修改,会修改原数组的内容。不会从新建立一个数组。
4. 数组名虽然“相当于”指针。但是还是由区别的。数组名不能用于加运算。例如:char a[]={"I am here"};while(1){printf("%d",a);a++;if (*a!=‘\0‘) break;}是不合法的。必须要把数组名赋值给指针,然后用指针运算。例如:
#include <stdio.h> int main() { char a[]={"I am here"}, *p; p=a; while (1) { printf("%c", *p); p++; if (*p==‘\0‘) break; } return 0; }
时间: 2024-12-29 04:39:18