亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

急急急求大神

為什么printf("%d\n",a+1);不改變a的值


正在回答

4 回答

因為只有自增自減才會改變a的值

printf("%d\n",a+1)的輸出結果是101的原因是%d指的是a+1整體。

如果第五步改變a的值,那么第六步的輸出結果就不是100了。

不知道我說清楚了嗎?

0 回復 有任何疑惑可以回復我~

#include <stdio.h>

int main()

{

? ? int a = 100;

? ? printf("x=%d\n",a++);//先取值100 下一段再運算+1。所以這段的 答案是100

? ? printf("x=%d\n",++a);//先運算上一段剩下的(100+1)在運算這一段的a+1,所以公式是(100+1)+1=102,答案是102

? ? printf("x=%d\n",--a);//先運算在取值(-1)+102=101 答案是101

? ? printf("x=%d\n",a--);//先取值 101 再下一段運算101 -1 ? 所以這段 答案是101

? ? printf("x=%d\n",a+1);// 先運算上一段剩下的101-1 在運算這一段 ,所以公式是(101-1)+1=101 ?答案是101 ?注意;這里并不改變a的值,也就是說這一段是單純的+1并不影響第8段運算完的結果a=(101-1),所以a還是100 然后在這段中+1

? ? printf("x=%d\n",a);//第9段說明a還是100

? ? return 0;//

} ? ? ? ?/* ? 5. ? 100

? ? ? ? ? ? ? 6. ? 102 ? ?

? ? ? ? ? ? ? 7. ? 101

? ? ? ? ? ? ? 8. ? 101

? ? ? ? ? ? ? 9. ? 101

? ? ? ? ? ? ? 10. ?100 ? ?*/


2 回復 有任何疑惑可以回復我~
#1

幕布斯1309840

eg:也就是說這一段是單純的+1并不影響第8段運算完的結果a=(101-1),所以a還是100;我感覺你好像思路不對, #include <stdio.h> int main() { int a = 0; printf("x=%d\n",a++); printf("a=%d\n",++a); printf("a=%d\n",a+1); printf("a=%d\n",a); return 0; } 這是我做的試驗,這個a+1結果就是3,是有影響的,請教,我也在眩暈中
2016-08-28 回復 有任何疑惑可以回復我~
#2

幕布斯1309840

#include <stdio.h> int main() { int x = 0; printf("x=%d\n",x--); printf("x=%d\n",--x); printf("x=%d\n",x+1); printf("x=%d\n",x); return 0; }
2016-08-28 回復 有任何疑惑可以回復我~

它輸出的還是a的值,

0 回復 有任何疑惑可以回復我~

符號在后面,先取值再賦值,所以printf是a的值


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926905    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

急急急求大神

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號