1.如果形参中数组的大小不确定(用指针 或没标定长度的数组,作为形参接收数组时),
故而无法确定函数内遍历的边界时,可以在形参中增加一个整型参数,用来传递数组长度
2.不论是形参用数组还是指针,来接收数组实参,函数内部都可以用数组表示法
3.指针数组:存储指针的数组
用途:可以定义一个指针数组,在一大堆数据中挑出一组符合要求的数据,而不必定义繁杂而且不具灵活性的普通变量接收
4.指针数组和数组指针的区别
int *p[3]; ->指针数组:存储一组指针的数组
int (*p)[3]; ->数组指针:指向数组的一个指针[强调了(*p)指针]
数组指针例子:
int A[4][3] = {{1,2,3},
{4,5,6},
{7,8,9},
{10,11,12}};
int (*p)[3]; //定义一个指向三个成员的数组指针
p = &A[0];
1)数组下标法
//打印所有元素
for(int i= 0;i<4;i++){
for(int j = 0;j<3;j++){
printf(" %d",(*p)[j]);
}
p++;
}
2)指针打印法
for(int i= 0;i<4;i++){
for(int j = 0;j<3;j++){
printf(" %d",*((*p)+j)); //(*p)是该行数组首地址 ->数组指针是数组首地址的二级指针,数组首地址是一级指针
}
p++;
}