C语言中一道和逗号运算符有关的题目

2025-02-23 20:51:20
推荐回答(5个)
回答1:

其实这道题还考了 ++a和a++的问题;pad=sum++,pad++,++pad ;这句 首先 把sum的值赋给 pad 就是sum里的值 把pad里的值覆盖了,虽然两个数字一样,但表示含义不一样;在给pad赋值时 sum 还没有自加 等赋完值 才自加。接着运行pad++ 就 把5加1了 最后是++pad 所以要加完了 以后 再用,所以 pad这时候就为7了 结果输出就为7了 。如果 最后一个换成pad++ 答案 就是6了(pad=sum++,pad++,pad++;)
a++和++a, 前一个先把a用了 然后再给a加一,后一个 先把a自己增加一 然后 再 做运算;
例如:
x=5;
y=++x;
x先加到6,然后再将x的值应用到表达式y=x中,y值为6 x,y都为6
x=5;
y=x++;
x为6,y为5.

回答2:

答案是7, 逗号运算符从左向右计算, 所有表达式都会运算, 但最后结果为最后一个逗号后边的值. 你可以试一下输出sum, 其值为6, 因为前边的表达式都已经运算过了.
printf("%d/n" 改为 printf("%d\n"

顺便提一下, 编程格式要规范, main()之前最好加返回值类型. 转义用"\"而不是"/".
个人之见, 如有错误, 请指教.

回答3:

sum=pad=5; //两个都是5.
pad=sum++,//sun=5,所以pad=5;在sum后面++表示这句执行完后sum再加一.这句等同于两句:pad=sum;sum++;
pad++,//pad+1,所以pad=6;
++pad; //pad再加一,所以pad=7;
printf("%d\n",pad); //这里pad应该等于7.

sum等于6,得出的结论是答案错了.

回答4:

我猜你是对的,逗号运算符优先级最小,但是它是会一直运算到语句结束,并取最后一个结果。

回答5:

c) 整个表达式最后取c的值,当然要从左向右运算

a=3*5=15 此时把15赋值给a a=15

a*4与a+15 无相关联系
所以看a+15就可 a+15=15+15=30 为这个逗号表达式的值