我知道int (*p)[5]
是指一個指向5個整數的指針。 所以我的代碼下面這個方案:爲什麼使用int(* p)[5]`的結果如此混亂?
#include <iostream>
using namespace std;
int main()
{
int a[5]={0,1,2,3,4};
int (*q)[5]=&a;
cout<<a<<endl;
cout<<q<<endl;
cout<<*q<<endl;
cout<<**q<<endl;
return 0;
}
在我的機器,結果是:
0xbfad3608
0xbfad3608 //?__?
0xbfad3608
0
我可以理解,*q
意味着a[0]
和**q
地址指的a[0]
價值,但爲什麼q
與a
和*q
具有相同的值?我頭腦不好,應該是他們的地址!我完全困惑。有人請幫助我。請!
這是否意味着'&a == a ==&a [0]'? – zyc
@zyc,不,但他們都開始在同一個地址。 – avakar
是的,'&a == a ==&a [0]'。 –