鱼C论坛

 找回密码
 立即注册
查看: 2755|回复: 13

关于逗号运算符的问题

[复制链接]
发表于 2013-11-24 17:35:15 | 显示全部楼层 |阅读模式

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

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

x
void main(void)
{
        int a=2,b=4,c=6,x,y;
        y=(x=a+b),(b+c);
        printf("y=%d,x=%d",y,x);

}

代码如上所示,运算结果,X Y 都是6

我知道赋值运算符的优先级要大于逗号,那不就应该是

1.先计算出X的值为6
2.把X的值赋值到y
3.把(b+c)赋值到y

所以不应该是X=6
y=10么

PS:在C99里面要求适应int main(c语言程序设计第四版里面说的,甲鱼老师的课件应该是第2版)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-24 18:28:22 | 显示全部楼层
因为赋值运算符优先逗号运算符

int a=2, b=5;
int c;
c=a,b;
则c=2;
你说的那第2,3步骤是关于逗号表达式的

int a=2,b=5;
int c;
c=(a,b);
这时c=5;,因为()比赋值运算符优先,所以先运算()里面,这时的运算过程是先计算逗号表达式的表达式1(也就是a),再计算表达式2(也就是b),整个表达式的值等于最后一个表达式的值(也就是b),所以c=b.

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-24 18:34:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-24 18:37:20 | 显示全部楼层
admintow 发表于 2013-11-24 18:34
是的啊。所以我的那个程序不就应该是把(B+c)赋值到Y吗

y=( (x=a+b),(b+c) );这样才行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-24 18:39:57 | 显示全部楼层
下弦月之夜_夜末 发表于 2013-11-24 18:37
y=( (x=a+b),(b+c) );这样才行。

我知道了。。。。
就是括号的优先级排在第一,赋值号的优先级排在第二!!!!
thank
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-24 19:10:07 | 显示全部楼层
admintow 发表于 2013-11-24 18:39
我知道了。。。。
就是括号的优先级排在第一,赋值号的优先级排在第二!!!!
thank

不用客气{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-25 11:37:38 | 显示全部楼层
楼主我爱你:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-25 16:56:42 | 显示全部楼层
楼上的亮了      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-25 18:18:46 | 显示全部楼层
学习了支持一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-25 18:38:43 | 显示全部楼层
逗号运算符是最后才运算的.!   你只要知道就行了.到时候学习汇编你的问题就迎刃而解了:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-25 19:28:30 | 显示全部楼层
骇客不会飞 发表于 2013-11-25 11:37
楼主我爱你

我不爱你。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-25 20:25:05 | 显示全部楼层
太支持搂住了{:1_1:}:sad{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-25 21:04:01 | 显示全部楼层
我要积分!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-26 08:14:37 | 显示全部楼层
不错不错,共同进步!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 11:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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