1.输入的是数组的名称 :
int f(int arr[])类型 arr等于数组第一个元素的地址: arr == &arr[0]
int f(int arr[]); //输入的是数组的名称即指针。
int main()
{
int arr[5] = {0};
f(arr);
}
int f(int arr[])
{
arr[1] = arr [2] + arr[3] //使用时直接将数组名字加入序列即可
}
2.将数组名字当做指针来进行输入: f( int * ps) 使用*(指针+ i)来进行访问以及计算
int f(int * arr); //输入的是数组的名称即指针。
int main()
{
int arr[5] = {0};
f(arr);
}
int f(int * arr)
{
*(arr + 1) = *(arr + 2) ; //使用 *(arr + i)来进行数据的访问以及处理
}
将数组作为函数参数传递,是将数组的地址,长度,元素类型作为参数传递给函数。
1)在输入数组时,经常使用输入首地址还有长度,也可以将首地址,和末尾地址一起作为参数传递给函数。
2)非常量指针可以指向常量(int * pt = const int a;),常量指针也可以指向常量,但非常量指针不能指向常量(int* pt = const int)
3)数组中,非常量指针不能指向常量数组,
4)const void *src,代表传入的参数指向的值不可以改变,但指针可以改变。如src++;而char * const p则代表着指针是不可改变的但值可以改变。