问题中的问题
这里个人提个问题:二维数组a [3][2]={(0,1),(2,3),(4,5)}为什么说这个赋值就相当于int a [3][2]={ 1, 3,5}???具体内容如下:
#include <stdio.h>
intmain(int argc,char * argv[])
{
int a [3][2]={(0,1),(2,3),(4,5)};
int *p;
p=a [0];
printf("%d",p[0]);
}
问打印出来的结果是多少?
很多人都觉得这太简单了,很快就能把答案告诉我:0。不过很可惜,错了。答案应该是1。如果你也认为是0,那你实在应该好好看看这个题。花括号里面嵌套的是小括号,而不是花括号!这里是花括号里面嵌套了逗号表达式!其实这个赋值就相当于
int a [3][2]={ 1, 3,5};
所以,在初始化二维数组的时候一定要注意,别不小心把应该用的花括号写成小括号了。
[ 本帖最后由 狐飞 于 2014-8-18 17:31 编辑 ]