c语言#include <stdio.h> main() { int x=010, y=10; printf("%d,%d\n", ++x, y--); }

#include <stdio.h>
main()
{
int x=010, y=10;
printf("%d,%d\n", ++x, y--);
}

程序运行后的输出结果是( )。答案:B
A)11,10

B)9,10

C)010,9

D)10,9

·,++x和--x都是先计算后使用该变量,而x++和x--是先使用该变量再计算,
这句话不太懂大神能解释一吗
最新回答
带翅膀的吸血鬼

2024-10-13 13:42:06

(一)
已知 x 的值为 2, y 的值为0
则 y=++x; 的意思是
先x=x+1; (此后x的值为3,y的值为0,)
后 y=x; (此后x的值为3,y的值为3)

(二)
已知 x 的值为 2, y 的值为0
则 y=x++; 的意思是
先 y=x; (此后x的值为2,y的值为2)
后 x=x+1; (此后x的值为3,y的值为2)

--x 与 x-- 也是一样的道理

010是八进制数,它的十进制数是8
x的值为8,所以输出 ++x 的值为9
一身懵逼正气

2024-10-13 08:41:12

首先,++是单目运算符,优先级是高于=的,所以是先执行++。
第二,x++返回值是(x+1),是表达式而非变量
第三,++x的返回值是x,是变量。

谢谢采纳。
追问
printf函数只能返回变量
追答

看看这几张图的区别。


鬼怪

2024-10-13 09:04:59

输出结果是:
10,10,9,9
第一个:x--先用x,值是10
第二个:x的值还是10,这里的x自减要等整个输出语句完成后才会执行
第三个:--y先y自减1,然后再输出,结果是9
第四个:y现在的值已经是9了
萌攻

2024-10-13 08:24:35

10 10 9 10
x--,x,--y,y这四个参数对于printf来说是同时调用的,不存在先后关系
x-- 是先调用x,然后再做减法 就是10
x 的值就是10
--y 是先做减法 再调用 就是9
y 的值就是10