黑马程序员技术交流社区

标题: C语言中,为什么二维以上的数组做形参有特殊的问题? [打印本页]

作者: 易孟飞    时间: 2014-10-8 17:42
标题: C语言中,为什么二维以上的数组做形参有特殊的问题?
本帖最后由 易孟飞 于 2014-10-8 17:50 编辑

上码

void Method(int  arrInt[][])
{
             for(int i=0;i<3;i++)                                            for(int j=0;j<3;j++)
                               printf("%d",arr[j]);
}

void main
(
          int arr[3][3]={1,2,3,4,5,6,7,8,9}
          Method(arr);//打印的结果将会乱七八糟
)
//不但是C,包括C++,OC都有这个问题,(总之只要是使用指针的,都会有这个问题,C++里可以用引用避免)


作者: 阿温    时间: 2014-10-8 18:42
打印的是arr[]一维的地址,没有错吧
作者: 邢玉池    时间: 2014-10-8 19:02
为什么你的黑马币是负的?
作者: 米匠    时间: 2014-10-8 21:24
你确定  “int arr[3][3]={1,2,3,4,5,6,7,8,9}”  这是在定义二维数组???
作者: 易孟飞    时间: 2014-10-8 21:58
邢玉池 发表于 2014-10-8 19:02
为什么你的黑马币是负的?

神奇吧,被斑竹删了几个帖子,就变成这样了
作者: 易孟飞    时间: 2014-10-8 21:59
阿温 发表于 2014-10-8 18:42
打印的是arr[]一维的地址,没有错吧

文不对题
作者: 孙林    时间: 2014-10-10 09:21
代码问题。给你说个思路,arr[i][j]才代表一个数组元素,你这个arr[j]是不行的。打出来肯定乱码了。
作者: 易孟飞    时间: 2014-10-10 22:30
孙林 发表于 2014-10-10 09:21
代码问题。给你说个思路,arr[j]才代表一个数组元素,你这个arr[j]是不行的。打出来肯定乱码了。 ...

就算该成你这样,也是乱的,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2