c++语言函数传递数组 c语言函数传递数组修改( 二 )


【c++语言函数传递数组 c语言函数传递数组修改】 我们改一下上面的额foo函数定义:
编译运行:
这下就正常了 。
参数如上所列 。
我们看到,函数的参数声明改成了:
这个声明的含义是:
不过此时还是需要指定二维数组的列长度,不然函数内部还是无法使用二维下标去访问数组:
编译:
原因同前面方法1一致,如果要访问二维数组,必须指定列的长度,否则无法计算出该元素的地址,a[i][j]=a [ (i-1)*COLNUM + j ],如果没有COLNUM,那么这个地址无法计算出来 。从形参的声明来说,a就是一个指针,指向一维数组的指针,而不是一个二维数组 。
这里要注意的是指针的指针,和二维数组的差异;二维数组的地址是连续的,所有成员按顺序排序;而指针的指针只要求指针地址连续,而不要求指针的指针地址连续 。
然后作为实参传递时,也不能直接使用a传递,因为类型不匹配,必须定义新的变量p,然后把a的值赋给p,再传递给foo函数 。
c++语言函数传递数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数传递数组修改、c++语言函数传递数组的信息别忘了在本站进行查找喔 。

推荐阅读