标题:关于二维数组名和二维指针的问题
只看楼主
lc5263
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-17
结帖率:33.33%
已结贴  问题点数:10 回复次数:5 
关于二维数组名和二维指针的问题
void fun(int **array, int m, int n);
 在调用这样的函数的时候,需要注意一下,如下面的例子:
 int a[3][3] = { {1, 1, 1}, {2, 2, 2}, {3, 3, 3}};
fun(a, 3, 3);
根据不同编译器不同的设置,可能出现warning 或者error,可以进行强制转换如下调用:
fun((int**)a, 3, 3);
为什么 不能直接用数组名,它和二维指针有什么区别?
搜索更多相关主题的帖子: warning 编译器 
2016-12-11 21:02
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
看场合  一维数组也一样

DO IT YOURSELF !
2016-12-11 21:10
lc5263
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-17
得分:0 
回复 2楼 wp231957
什么意思,能说清楚点吗,谢谢
2016-12-11 21:11
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
指针是一个变量,变量的值是另外一个变量的地址。那么,既然指针是变量,那么指针必然有自己的存储空间,只不过是该存储空间内的值是一个地址值,而不是别的内容

数组和指针虽然有很大的联系  但是“数组名就是指针” 这种观点还是有待推敲的

DO IT YOURSELF !
2016-12-11 21:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
可能有些编译器把 char* 和char [] 视同同一事物  估计也是可能的  视编译器心情吧

DO IT YOURSELF !
2016-12-11 21:22
lc5263
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-17
得分:0 
回复 4楼 wp231957
那个,你能结合我的问题具体说下他们有什么不同吗?
2016-12-11 22:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-472278-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.584235 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved