作者diabloevagto (wi)
看板C_and_CPP
標題Re: [問題] 指標的運算
時間Thu Jun 3 15:15:59 2010
#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
→ jerki:謝謝回應^^ 06/03 16:17
噓 visor:要噓別噓錯人...... 06/04 08:26