大一C语言问题,求解答

#include<stdio.h>
main()
{
int a=4,b=7;
printf("%d\n",(a=a+1,b+a,b+1));
}
答案是8,不知道为什么

(a=a+1,b+a,b+1)
这是一个逗号运算
最后的结果是 b+1
前面a=a+1,b+a 没有改变b的值,所以结果就是b+1=8追问

追问 那如果printf("%d\n",a=a+1,b+a,b+1);
答案是多少啊,是5吗

追答

嗯,是5

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-15
(a=a+1,b+a,b+1)
这个是逗号表达式
这整个表达式的值,应该是最右边那个项b+1的值,
由于b=7,那么b+1的值就是8
所以整个逗号表达式的值就是8,输出就是8
第2个回答  2013-01-15
printf("%d\n",(a=a+1,b+a,b+1));
从右到左,输出b+1;追问

那如果printf("%d\n",a=a+1,b+a,b+1);
答案是多少啊,是5吗

相似回答
大家正在搜