作者freesamael (燒賣)
看板C_and_CPP
標題Re: [問題] 指標的運算
時間Thu Jun 3 14:51:10 2010
※ 引述《jerki (Dennis)》之銘言:
: 因為還在初心者的階段,若問了笨問題請多包涵
: 程式:
: int A[5];
: int *P;
: for(i=0;i<=4;i++)
: A[i]=5-i;
: P=A;
: 請問下列結果為何? 是各別五小題
: 1.Printf(*P++) ans:5 (我算是6,*優先權較高所以先取A[0]再++)
i++ 是先取值再加一,比如說:
int i = 5;
printf("%d", i++); // 印出5,但過了這行之後 i 為 6。
也就是效果相當於:
printf("%d", i);
i++;
在這題目中效果相當於:
printf("%d", *p);
p++;
: 2.Printf(*++P) ans:4 (這題就難懂了,不知誰該先做)
++i 剛好相反,先加一才取值
int i = 5;
printf("%d", ++i); // 印出6。
在這題目中效果相當於
++p;
printf("%d", *p);
: 3.Printf(++*P) ans:4 (還是6,一樣先做*P再++)
: 4.Printf((*P)++) ans:4 (括號先算,算出來是6)
: 5.Printf(*--P) ans:4 (同第二題)
: 若題目答案沒問題,那我一定是觀念哪裡錯誤了..
: 麻煩板友指點,萬分感謝Q_Q
不過這題目到底有沒有連續阿? 我看了有點怪怪的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.182.92
※ 編輯: freesamael 來自: 140.124.182.92 (06/03 15:00)
→ jerki:題目是各自獨立的 抱歉沒說清楚 但各位這樣解釋我已經清楚了 06/03 16:16
→ jerki:感恩^^ 06/03 16:16