鱼C论坛

 找回密码
 立即注册
查看: 3415|回复: 4

逗号运算符

[复制链接]
发表于 2011-8-9 10:26:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include "stdio.h"
void main()
{
   int a = 2, b = 4,c = 6,x,y;
   y = (x = a+b),(b+c);
   printf("y = %d\nx = %d\n",y,x);
}


(b+c)的值运算为何不等于10、而是等于6,求解!


file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/635755691/QQ/WinTemp/RichOle/AA$M_B4AW]9_PAU%7BB3QCDS7.jpg





想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-9 10:55:12 | 显示全部楼层
y = (x = a+b),(b+c)   ==   ( y = ( x = a + b ) ) , ( b + c )
整个表达式的结果为10;
x为6;
y为6;
执行顺序为:
1.x = a + b
2.y = (  )
3.(y),(b + c)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-9 11:12:45 | 显示全部楼层

谢谢!!!
运算顺序是知道,不过按照那视频教材里面的代码运算y,x都是等于6
刚自己尝试了下
#include "stdio.h"
void main()
{
   int a = 2, b = 4,c = 6,x,y;
   y = ((x = a+b),(b+c));
   printf("y = %d\nx = %d\n",y,x);
}


输出的结果:y=10,x=6

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-9 14:38:37 | 显示全部楼层
我怎么又看不明白了呢
应该是从左到右的运算吧
最终应等于最右端的表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-9 20:41:53 | 显示全部楼层
先搞清","是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-8 17:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表