猿问

能解释一下为什么吗?详细一点

慕粉3526112
浏览 1263回答 4
4回答

小雾3378873

#include <studio.h>int main(){    int a=100;                        //a=100    printf("%d\n",a++);        //先显示输出a的值(100),然后计算a=a+1 =101    printf("%d\n",++a);        //先计算a=a+1=101+1=102,然后显示输出a的值(102)            printf("%d\n",--a);          //先计算a=a-1=102-1=101,然后显示输出a的值(101)    printf("%d\n",a--);          //先显示输出a的值(101),然后计算a=a-1=101-1=100    printf("%d\n",a+1);        //显示输出a+1的值(100+1=101),注意,a值不变还是100    printf("%d\n",a);            //显示输出a的值(100)    return 0;}a++   a--  先用再计算赋值++a   --a  先计算赋值再用

慕粉3291149

a++的意思是先调用a然后a在加一(调用的时候a还没有加一)  ++a的意思是a先加一,在调用(调用a的时候a已经加一了)a--和--a同上第一个print(a++)    输出100  先输出a(a此时为100),然后a在加一 ,即 a=100+1=101;第二个print(++a)  输出102  a先加1 即  a=101+1=102;然后输出a(此时a为102)其他同上

楽兿

我之前也没明白,我觉得你跟我是一样的情况就是没有明白其实下一行输出中的a其实是上一个语句执行完的结果例如 printf("%d\n",++a);这里的a不再是初始值100了而是进行a++之后的101,所以再执行++a的时候,不是取值100+1而是a++之后的101+1=102。这一种情况你弄明白之后,下面的几条应该就都明白了

onemoo

自增自减涉及到很多内容,课程中都没有讲明白。我在老区有一个详细回答,请看这里 http://www.imooc.com/qadetail/83948
随时随地看视频慕课网APP
我要回答