| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:一段代码不懂
只看楼主 加入收藏
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:6 
一段代码不懂
设int a=15,b=26;,则cout<<(a,b);
其输出结果是26,为什么
2013-06-23 12:11
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:2 
相当于在某个地方先后存储几个值,但只保存最后的值
但这样也不知怎么回事?
 cout<<(10,100,102)<<10,100,102,300;
   cout<<10,100,102,300<<(10,100,102);

[ 本帖最后由 qunxingw 于 2013-6-23 12:58 编辑 ]

www.qunxingw.wang
2013-06-23 12:46
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:3 
没有玩过,可以试试反汇编看一下,vs自带了反汇编功能的

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-06-23 12:50
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
这段代码我也是上机运行之后才总结出像二楼所说的那样,不操作,根本无法理解这东西

思考赐予新生,时间在于定义
2013-06-23 12:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
逗号表达式 也不知道?连谭浩强的书上都讲过
(15,26) 这个表达式的值为26

int a=15,b=26;cout<<(a,b);
相当于
int tmp = (15,26);
cout << tmp;
2013-06-24 10:12
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
逗号运算符,最后的结果是最后的元素,所以输出的是26

C++菜鸟
2013-06-24 12:01
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 

    int a=15,b=26;
    int c = (a,b);
反汇编结果:
    int a=15,b=26;
009517BE  mov         dword ptr [a],0Fh  
009517C5  mov         dword ptr [b],1Ah  
    int c = (a,b);
009517CC  mov         eax,dword ptr [b]  
009517CF  mov         dword ptr [c],eax



    int a=15,b=26;
    int c = (a++,b);

这两句的反汇编结果:
    int a=15,b=26;
001317BE  mov         dword ptr [a],0Fh  
001317C5  mov         dword ptr [b],1Ah  
    int c = (a++,b);
001317CC  mov         eax,dword ptr [a]  
001317CF  add         eax,1  
001317D2  mov         dword ptr [a],eax  
001317D5  mov         ecx,dword ptr [b]  
001317D8  mov         dword ptr [c],ecx

可以知道 括号里面的前面部分,被作为单独语句执行了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-06-24 12:27
快速回复:一段代码不懂
数据加载中...
 
   



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

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