main(){
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
}
本例中,y 等于整个逗号表达式的值,也就是表达式 2 的值,x 是第一个表达式的值。
-----------------------------------------------------------------以上内容是从谭浩强的C语言教程里看的,运行后显示y=6,x=6
为什么说y是表达式2的值,表达式2不就是(b+c)吗?恳请大家给我完整地分析一下这个程序,包括其中的运算优先级。我刚开始学,很多东西都捋不清。
对运行结果y=6,x=6我没异议,但为什么说y是表达式2的值?????????????这样y不就等于10了吗?自相矛盾啊
看来是谭浩强的书的错别字,天地良心,网上下的电子书。
https://gss0.baidu.com/7LsWdDW5_xN3otqbppnN2DJv/andrew%B9%C2%C0%C7/pic/item/c2bcc37e492e4f360dd7da08.jpg
上面的是截图!
大 家 仔 细 看 我 的 问 题 补 充,
看 来 是 我 的 表 达 能 力 太 差
了 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊