課程
/后端開發(fā)
/C
/C語言入門
對例題的a++和a--和--a的結(jié)果不解
2015-12-04
源自:C語言入門 3-3
正在回答
我改一下代碼比較好理解
#include <stdio.h>
int main()
{
? ? int a =100,b,c,d,e;
? ? b=a++; ?//①
? ? c=++a; ?//②
? ? d=--a; ?//③
? ? e=a--; ? //④
? ? printf("%d\n",b);
? ? printf("%d\n",c);
? ? printf("%d\n",d);
? ? printf("%d\n",e);
? ? return 0;
}
事實上它程序運行時是這樣的,進行①時可分為b=a;a=a+1; ?此時得b=100 ? a在程序中的默認值則變?yōu)榱薬=101
然后②時 可拆成 a=a+1; c=a; ?即先運算再取值,所以a=101+1=102 ?c=102 ? ?進行③時同理此時得a再程序中是102的,進行a=a-1;b=a; 所以a=101 ?b=101然后進行④時為e=a; a=a-1; ?所以得e=101 ?a=100?
Muzeebob 提問者
熊貓竹
a=100 ?b=a++;第一個 先用a的值賦給b ?然后a在自增 ?a=101 b=100?
?第二個 ? c=++a;先自增 再把值賦給c ?因為a在上一個式子已經(jīng)等于101了所以自增后a=102 ?c=102?
?第三個 ?d=--a; 先自減 ?再賦值給d ? a=101 ? d=101
?第四個 e=a--;先賦值給e 再 自減 ? ?e=101 ? a=100?
++a --a因為運算符號在前 所以先 自增 或自減 在使用a的值 ? a-- ? a++ ?因為運算符在后面 先使用 在 自增或自減
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答a=a++的結(jié)果還是a?
4 回答怎么理解【a++ = a】和【a++ =a+1】
2 回答--a||a++和a++||--a為何不同
2 回答a++和a+,+a、++a的區(qū)別是什么??
2 回答--a和a--的疑問
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2015-12-04
我改一下代碼比較好理解
#include <stdio.h>
int main()
{
? ? int a =100,b,c,d,e;
? ? b=a++; ?//①
? ? c=++a; ?//②
? ? d=--a; ?//③
? ? e=a--; ? //④
? ? printf("%d\n",b);
? ? printf("%d\n",c);
? ? printf("%d\n",d);
? ? printf("%d\n",e);
? ? return 0;
}
事實上它程序運行時是這樣的,進行①時可分為b=a;a=a+1; ?此時得b=100 ? a在程序中的默認值則變?yōu)榱薬=101
然后②時 可拆成 a=a+1; c=a; ?即先運算再取值,所以a=101+1=102 ?c=102 ? ?進行③時同理此時得a再程序中是102的,進行a=a-1;b=a; 所以a=101 ?b=101然后進行④時為e=a; a=a-1; ?所以得e=101 ?a=100?
2015-12-04
a=100 ?b=a++;第一個 先用a的值賦給b ?然后a在自增 ?a=101 b=100?
?第二個 ? c=++a;先自增 再把值賦給c ?因為a在上一個式子已經(jīng)等于101了所以自增后a=102 ?c=102?
?第三個 ?d=--a; 先自減 ?再賦值給d ? a=101 ? d=101
?第四個 e=a--;先賦值給e 再 自減 ? ?e=101 ? a=100?
++a --a因為運算符號在前 所以先 自增 或自減 在使用a的值 ? a-- ? a++ ?因為運算符在后面 先使用 在 自增或自減