数组传参 | 您所在的位置:网站首页 › 数组作为参数传递的是什么 › 数组传参 |
下面讨论一下关于将二维数组作为参数传递的方式: 例一: #include int max(int *a) { int max; return 0; } int main() { int a[3][4]; printf("%d",max(a)); return 0; } 这里用数组名a作为参数传递给int max(int *a)这个函数作为实参,在VC6下会有warning,在VS2008下会出现错误,如下:错误 2 error C2664: “max”: 不能将参数 1 从“char [3][4]”转换为“int *” 提示不能将二维数组地址转换为一个*的指针。(感觉上VS2008比VC6更不讲理了...) 想要将数组首地址传递给一重指针,可以用下面的方法: 例二: #include int max(int *a) { int max; return 0; } int main() { int a[3][4]; printf("%d",max(a[0]));//&a[0][0] return 0; } 不过如果这样传递参数,在max函数中只能将a当成是一维数组使用,而当你用二重指针去引用时,VS2008会报错... 可看下面程序: 例三: #include int max(int *a) { int max = 0; int i,j; for(i=0;i int max = 0; int i,j; //for(i=0;i int max = 0; int i,j; for(i=0;i |
CopyRight 2018-2019 实验室设备网 版权所有 |