设整型变量a,b的值均为5,则表达式(m=n=a++)⼀(n=b-2)的值是什么?

A.0 B.1 C.2 D.3C语言的题~
2024-12-27 10:23:16
推荐回答(2个)
回答1:

答案是 1

c语言表达式有一个从左原则,即一个表达式中取最左边的值为表达式的值例如:
a=b=c 这个表达式取a的值(但因为c的值赋给了b,b的值赋给了a,所以a的值也是c的值)
a,b,c 这个表达式取的也是a的值(无论b,c为何值)

另外a++和++a的区别:
a++即当前代码执行完后a自加1,++a即当前代码执行前a自加1
如果是单独的写a++;和++a;这2个语句是没区别的
而b=a++;和b=++a;就有区别了
b=a++;实际上是b=a;a=a+1;
b=++a;实际上是a=a+1;b=a;

因此(m=n=a++)/(n=b-2)可以这样看待:
把a=5这个值传给n后再传给m 那么前面个括号里的值就为5
n=b-2值为3,于是整个表达式的值就为5/3=1(整形的除法没有小数)
最后a自加1,但表达式的值不变,仍为1

回答2:

B