数组作为函数参数
一维数据做函数参数:
1.数组作为参数传给函数时,数组可以转换成一个指针,传入数组名相当于传入数组首个元素的地址,不是传整个的数组空间。
2.数组可以当做指针用,指针也可以当做数组用的例子
void main(int argc, char *argv[]) { char str[20] = "12345"; char *p = "1234"; printf("%c %c\n", *str, *(str+1)); printf("%c %c\n", p[0], p[2]); } 输出: 1 2 1 3
二维数组作为函数实参:
错误认识:既然一维数组作为参数相当与一个指针,那二维数组作为参数就相当于一个二级指针(不要把 a[][] 写成 **a 传入函数)
正确认识:二维数组名作为参数时相当于一个数组指针(指向一维数组的指针)
// 方式1 void fun(int a[4][3]) // 方式2 void fun(int (*p)[3]) // 方式3 void fun(int a[][3])