[問題] 指標疑問
程式碼如下:
void f(int *p, int a[])
{
p = a;
cout<<"(f) "<<"p = "<<p<<" ,*p = "<<*(p)<<endl;
}
int main() {
int a[] = {1,3,5,7};
int *p = &a[1];
cout<<"(1) "<<"p = "<<p<<" ,*p = "<<*(p)<<endl;
f(p,a);
cout<<"(2) "<<"p = "<<p<<" ,*p = "<<*(p)<<endl;
p++;
cout<<"(3) "<<"p = "<<p<<" ,*p = "<<*(p)<<endl
}
執行結果如下:
(1) p = 0x28fef0 ,*p = 3..............第一行
(f) p = 0x28feec ,*p = 1..............第二行
(2) p = 0x28fef0 ,*p = 3..............第三行
(3) p = 0x28fef4 ,*p = 5..............第四行
問題:
我的問題在執行結果的第2行與第3行
想問為什麼 *p 的值在函式中明明已經被改變了
但離開函式後馬上再印出來卻又回復了
已經困擾小弟我很多天了
麻煩版上的大大能幫幫忙~
THANKS!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.184.233.166
推
02/11 12:34, , 1F
02/11 12:34, 1F
→
02/11 12:34, , 2F
02/11 12:34, 2F
→
02/11 13:39, , 3F
02/11 13:39, 3F
討論串 (同標題文章)