[問題] 傳值(址)問題?

看板C_and_CPP (C/C++)作者 (迪.阿倫)時間14年前 (2012/04/03 01:57), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
#include<stdio.h> void f(int *p, int a[]) { p=a; } int main() { int a[]={1,3,5,7}; int *p=&a[1]; f(p,a); p++; printf("%d",*(p)); return 0; } 我想請問一下 p指到a+1之後 經過函式f(p,a) 為什麼回到main上 p沒有變到a的開頭 而是從a+1開始 是因為p=a <-這句的生命期 只能在f() 函式裡面嗎 不是已經把位址 指到a了嗎>_< 請大大們 指教一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.171.49.161

04/03 02:10, , 1F
debugger開起來程式碼一行一行trace, 並且把每個當下用
04/03 02:10, 1F

04/03 02:11, , 2F
到的變數的值和位址都印出來看, 你就知道答案了....:)
04/03 02:11, 2F

04/03 02:12, , 3F

04/03 02:13, , 4F
j大真是個好人....XD
04/03 02:13, 4F

04/03 02:36, , 5F
謝謝james大大 我大概了解問題所在了 :)
04/03 02:36, 5F
文章代碼(AID): #1FUUYDNw (C_and_CPP)
文章代碼(AID): #1FUUYDNw (C_and_CPP)