#include<stdio.h> //二维数组与一级指针的传参 void test(int arr[3][5]); int main() { int arr[3][5] = {{1,2,3,4,5}}; test(arr); } void test(int arr[3][5]) //void test(int arr[][5]) 即二维数组只能省略行,不能省略列 //如果我们用指针的方式如何表示? //答:常见的错误示范:void test(int *arr)这种写法是错误的,*arr代表首地址,而二维数组的首地址是一个一维数组的地址,error // void test(int* *arr)这种写法也是错误的,从主函数传过来的是一个一维数组,子函数用一个二级指针接收,但二级指针是用来存放一级指针的,error //正确表达:我们(*arr)代表指向一维数组,是指针,(*arr)[5]代表指针(*arr)指向5个元素,int (*arr)[5] 代表指针(*arr)指向5个元素的类型是int //void test(int (*arr)[5]) { ; }
二维数组与一级指针的传参
最新推荐文章于 2024-10-09 23:37:26 发布