数组作为函数参数
一维数组作函数参数:
1.数组作为参数传给函数时,数组可以转换成一个指针,传入数组名相当于传入数组首个元素的地址,不是传整个的数组空间
// 方式1 void fun(int a[4]) // 方式2 void fun(int a[]) // 方式3 void fun(int *a)
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 a[][3]) // 方式3 void fun(int (*a)[3])
浙公网安备 33010602011771号