計算機概論 - 考試

Table of Contents

: void f(int *p,int a[]) { p=a;} //*(p)=1
: void main()
: {
: int a[]={1,3,5,7};
: int *p=&a[1];
: f(p,a);
進去之後無痛出來,因為CALL BY VALUE(如綠色箭頭)
: //*(p)=3
: p++;
+1故指標往後指(如紅色箭頭)
: cout<<*(p);
: //*(p)=5
: }
: 想法: p不是指標嗎?
: 為什麼離開 f function 後
: p值仍未改? call by value?

圖解一下:
P a[0] a[1] a[2] a[3]
--------------------------------------
儲存的內容     1 3 5 7
│ ↑
        └────────┘───┘

有錯請指證@@"

--

All Comments

Hedy avatarHedy2013-06-17
感謝回答