課程
/后端開發
/C
/C語言入門
為什么printf("%d\n",a+1);不改變a的值
2016-07-18
源自:C語言入門 3-3
正在回答
因為只有自增自減才會改變a的值
printf("%d\n",a+1)的輸出結果是101的原因是%d指的是a+1整體。
如果第五步改變a的值,那么第六步的輸出結果就不是100了。
不知道我說清楚了嗎?
#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 ? ?*/
幕布斯1309840
它輸出的還是a的值,
符號在后面,先取值再賦值,所以printf是a的值
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答急急急急急急求
1 回答急急 大神幫我看下
2 回答寫代碼 急大神求
2 回答急急急!求解答!
4 回答急急急!快考試了!求大佬解答!
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-26
因為只有自增自減才會改變a的值
printf("%d\n",a+1)的輸出結果是101的原因是%d指的是a+1整體。
如果第五步改變a的值,那么第六步的輸出結果就不是100了。
不知道我說清楚了嗎?
2016-07-18
#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 ? ?*/
2016-07-18
它輸出的還是a的值,
2016-07-18
符號在后面,先取值再賦值,所以printf是a的值