| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:问题中的问题
取消只看楼主 加入收藏
狐飞
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2014-7-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
问题中的问题
这里个人提个问题:二维数组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 编辑 ]
搜索更多相关主题的帖子: include 表达式 
2014-08-18 16:40
狐飞
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2014-7-18
收藏
得分:0 
回复 3 楼 zklhp
顺序求值,学习了!谢谢!
2014-08-19 09:40
快速回复:问题中的问题
数据加载中...
 
   



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

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