鱼C论坛

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

逗号运算符,求帮忙?

[复制链接]
发表于 2012-2-22 13:22:39 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 宽哈 于 2012-2-23 15:23 编辑

int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d\n",y,x);

为啥y的输出是6,而不是10呢?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-2-22 13:25:21 | 显示全部楼层
逗号运算符是所有运算符中级别最低的。
举个例子:
a=3*5,a*4
先求解a=3*5;
赋值后a的值为15;
然后求解a*4,得60;整个逗号表达式的值为60。

你的题:y=(x=a+b),(b+c);
             printf("%d\n",y);

要输出y,y=(x=a+b),和(b+c)没有关系。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-2-22 13:31:39 | 显示全部楼层

那我再想请问一下,(b+c)在此起什么作用?

整个逗号表达式的值又该如何输出呢?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-2-22 18:11:54 | 显示全部楼层
宽哈 发表于 2012-2-22 13:31
那我再想请问一下,(b+c)在此起什么作用?

整个逗号表达式的值又该如何输出呢?

如果是y=(x=a+b,b+c);这样,那么y输出10.

在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句(for语句)中
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-2-23 15:15:14 | 显示全部楼层
freecoding 发表于 2012-2-22 18:11
如果是y=(x=a+b,b+c);这样,那么y输出10.

在许多情况下,使用逗号表达式的目的只是想分别得到各个表达 ...

噢,暂时先谢啦。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-11 13:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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