哪位大神能解答这个问题困扰我很久了。

#Include<stdio.h>
int main()
{
    int a=100;
    printf("%d\n",a++);
    printf("%d\n",++a)
    printf("%d\n",--a);
    printf("%d\n",a--);
    printf("%d\n",a+1);
    printf("%d\n",a);
    return 0;
}
运行结果:
100
102
101
101
101
100
为啥运行结果是这样的。
我自己算出的结果是这样的:
100     a=101
102     a=102
101     a=101
101     a=100
101     a=101
101     a=101

不可描述R
浏览 1407回答 3
3回答

Yexiaomo

先说一下 a++  和 ++a的区别 虽然结果都 a 的值加 1 但是 a++ 却是 先进行 其他操作      ++a 却是 先进行加 1, 再进行其它操作,直接看代码吧:int main() {     int a=100;             // 此时 a = 100;     printf("%d\n",a++);    // 先 输出 a 值(也就是说,此时 还是 100), 输出之后, 再自加, a = 101     printf("%d\n",++a);    // 先 自加 1, a = 102 再输出 a 值 (a=102)     printf("%d\n",--a);    // 先 自减 1, a = 101 再输出 a 值 (a=101)     printf("%d\n",a--);    // 先 输出 a 值(此时 a=101), 输出之后, 再自减 1, a = 100     printf("%d\n",a+1);    // 输出 (a+1)=101   a 的值不变(a=100)     printf("%d\n",a);      // 输出 a 值, (a=100)     return 0; }希望你看后 可以理解 a++ 和 ++a的区别 ,如果还有不懂的, 可以继续问

繁华如梦倾城殇

倒数第二个既然你算出a+1的值是101了,那a=100你该明白,而执行完这一步之后并没有改变a的值所以a还是100

丶包菜

你这里错的主要是第一个和第四个,a++a--都是先赋值再运算例如:a   100a++  100//这时候上面运算完了a-- 101//等它运算完 才变为100
打开App,查看更多内容
随时随地看视频慕课网APP