++和-- |
答題得分者是:herbert2
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
雖然 i 是先加 1, --i 是先 --1, i 是後 1, i-- 是後 -1;
但那是對一個 Statement 而言: 例如 i=8, 則 a[ i] 取得 a[9], 且完成後 i = 9. 但 a[i ] 取得 a[8], 且完成後 i = 9. 例如 i=8, 則 a[--i] 取得 a[7], 且完成後 i = 7. 而 a[i--] 取得 a[8], 且完成後 i = 7. 您在一個輸出中連續用此四個運算, 您可能認為應得到 9, 8, 8, 8, 但得 8, 7, 7, 8, 可能因 printf() 處理順序之故. 不要在一個 Statement 做此種連續運算即可避免. 試 Run 一下下列方式看看! int a[10] = {0,1,2,3,4,5,6,7,8,9}; int i = 8; printf("%d\n",a[ i]); // 9 printf("%d\n",i); // 9 printf("%d\n",a[--i]); // 8 printf("%d\n",i); // 8 printf("%d\n",a[i ]); // 8 printf("%d\n",i); // 9 printf("%d\n",a[i--]); // 9 printf("%d\n",i); // 8 ===================引 用 zhouying82 文 章=================== int main() { int i=8; printf("%d\n%d\n%d\n%d\n", i,--i,i ,i--); getchar(); return 0; } 结果从上到下为:8 7 7 8 搞不懂这个到底是怎么算出来了吗?有哪位大大可以帮我一步一步分析吗?如第一个, i 不是应该是9吗,怎么会是8 ?谢谢了。在线等答案。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |