Re: [問題] 指標的運算

看板C_and_CPP作者 (wi)時間15年前 (2010/06/03 15:16), 編輯推噓-1(011)
留言2則, 2人參與, 最新討論串3/4 (看更多)
#include<stdio.h> #include<stdlib.h> int main(){ int a[5]={5,4,3,2,1}; int *p; p=a; printf("%d\n",p); printf("%d\t",*p++); printf("%d\n",p); //p=a; printf("%d\t",*++p); printf("%d\n",p); // p=a; printf("%d\t",++*p); printf("%d\n",p); //p=a; printf("%d\t",(*p)++); printf("%d\n",p); // p=a; printf("%d\t",*--p); printf("%d\n",p); system("pause"); } 你用這個程式自己看一下記憶體位置,這樣應該就能理解了 ※ 引述《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]再++) : 2.Printf(*++P) ans:4 (這題就難懂了,不知誰該先做) : 3.Printf(++*P) ans:4 (還是6,一樣先做*P再++) : 4.Printf((*P)++) ans:4 (括號先算,算出來是6) : 5.Printf(*--P) ans:4 (同第二題) : 若題目答案沒問題,那我一定是觀念哪裡錯誤了.. : 麻煩板友指點,萬分感謝Q_Q -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.204.41

06/03 16:17, , 1F
謝謝回應^^
06/03 16:17, 1F

06/04 08:26, , 2F
要噓別噓錯人......
06/04 08:26, 2F
文章代碼(AID): #1C1rQokK (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1C1rQokK (C_and_CPP)