0
以下代碼在屏幕上打印「1」。我的問題是關於評論欄。我以爲ptr是第一個元素a [0] [0]的地址,所以* p已經是1的值, 我在哪裏錯了?對於多維表的地址,有人可以提供一些教程嗎?我總是困惑。提前致謝。C程序指針指向多維表
#include<stdio.h>
void fun(int **p);
int main()
{
int a[3][4] = {1, 2, 3, 4, 4, 3, 2, 8, 7, 8, 9, 0};
int *ptr;
ptr = &a[0][0]; // *ptr = *&a[0][0]=a[0][0]
fun(&ptr);
return 0;
}
void fun(int **p)
{
printf("%d\n", **p);
}
好像很少有人使用/理解*基址指針*了,那就是,只是「一個」聲明後, int a [3] [4] ... – RobP
你沒有錯。輸出是1,這是你的預期。您正在將指針'ptr'的地址發送到fun()'函數,所以爲了獲得價值,您必須將其解除引用兩次,這就是您所做的。你認爲你錯在哪裏? 'p'是雙指針。 '* p' ='ptr' ='&a [0] [0]',和'** p' ='* ptr' ='*&a [0] [0]'='a [0] [0] '='1' – Vinay
@Vinay我看到我錯了。就像你說的那樣,我發送ptr的地址,這個地址已經被我省略了。謝謝! –