看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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