這些加加減減的很疑惑
為什么剛才在解析中說:無論是a++還是++a都等同于a=a+1,在表達式執行完畢后a的值都自增了1,無論是a--還是--a都等同于a=a-1,在表達式執行完畢后a的值都自減少1。
那么為什么下面舉的這個例子第一個就和解析里面說的不一樣啊,如果按照a++和++a都等同于a=a+1的話,那例題中第一個答案應該輸出的是101才對啊,因為a=100,那么a++=a+1 把a=100代入進去算出來不就是101嗎?為何例題輸出的是100?
為什么剛才在解析中說:無論是a++還是++a都等同于a=a+1,在表達式執行完畢后a的值都自增了1,無論是a--還是--a都等同于a=a-1,在表達式執行完畢后a的值都自減少1。
那么為什么下面舉的這個例子第一個就和解析里面說的不一樣啊,如果按照a++和++a都等同于a=a+1的話,那例題中第一個答案應該輸出的是101才對啊,因為a=100,那么a++=a+1 把a=100代入進去算出來不就是101嗎?為何例題輸出的是100?
2015-01-10
舉報
2015-01-11
i++ 是先返回 i 的值,再 i = i + 1;
++i 是先 i = i + 1;再把 i 值返回。
以示例代碼為例:
int?x?=?0;????//?x?值為?0 //?調用printf時,printf想要知道第二個參數的值,這第二個參數就是“++x” //?那么會先把x的值加上1(x為1),再把x的值(就是1)返回給printf用 printf("x=%d\n",++x);? //?這一句printf同樣想知道它的第二個參數的值,就是“x++” //?那么會先把x的值返回給printf用(值還是1),再把x的值加上1(這時i為2) printf("x=%d\n",x++); //?也就是說如果再次取x的值的話,就會得到2 printf("x=%d\n",?x);??//?這一句會輸出2? ?
2015-01-10
這個答案不錯:http://zhidao.baidu.com/question/424256398645419812.html?qbl=relate_question_0&word=i%2B%2B%BA%CD%2B%2Bi%B5%C4%C7%F8%B1%F0&optimi=4