這裏是代碼片段指針在C,不明白他們是如何得到這樣的結果
void F (int a, int *b)
{
a = 7 ;
*b = a ;
b = &a ;
*b = 4 ;
printf("%d, %d\n", a, *b) ;
}
int main()
{
int m = 3, n = 5;
F(m, &n) ;
printf("%d, %d\n", m, n) ;
return 0;
}
答案
4 4
3 7
我看到4 4
是如何計算的,我不明白他們是如何得到3 7
(我明白3是如何計算的,因爲沒有通過引用而沒有改變)
謝謝!
澄清外,沒有什麼是通過參考這裏傳遞;第二個參數通過值傳遞給n的地址,這是該代碼故意誤導的關鍵。 – zem 2010-10-10 21:47:39