| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:问题中的问题
只看楼主 加入收藏
狐飞
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2014-7-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
问题中的问题
这里个人提个问题:二维数组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
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
#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",a [0]);
}
问打印出来的结果是多少?

梦想拥有一台龙芯3A-4000
2014-08-18 19:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
逗号表达式顺序求值 值为最后一个位置的值 所以 (1,2,3) 的值是3

明白了这个 楼主的问题应该就清楚了
2014-08-18 20:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这是为做习题、考试而创造的问题。

授人以渔,不授人以鱼。
2014-08-18 20:44
狐飞
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2014-7-18
收藏
得分:0 
回复 3 楼 zklhp
顺序求值,学习了!谢谢!
2014-08-19 09:40
快速回复:问题中的问题
数据加载中...
 
   



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

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