陣列指標 指標陣列
阿新 • • 發佈:2020-07-21
陣列指標 指標陣列 陣列的名稱代表的含義 各自的長度和代表的含義
#include <stdio.h> #include <iostream> using namespace std; int main() { int ar[3] = { 1,2,3}; cout << sizeof(ar)<<endl;//12 cout << sizeof(&ar[0])<<endl;//8 cout << ar <<endl;//地址 0000005DFC13FC88 cout << &ar[0]<<endl;//地址1 0000005DFC13FC88 int(*p1)[3] = &ar;//陣列指標 int* p2[3] = {&ar[0],&ar[1],&ar[1]};//指標陣列 cout << p1 << endl;//000000F5130FFC88 cout<<sizeof(p1)<<endl;//8 cout<<sizeof(int(*))<<endl;//8 cout << p2 << endl;//000000F5130FFCB8 cout << sizeof(p2) << endl;//24 cout << sizeof(int *[3]) << endl;//24 return 0; }
1.陣列指標,本質是個指標,代表的含義是陣列的地址(陣列首元素的地址=陣列名),因為是指標,座椅需要用(*)表示強制結合為指標,因此表示的方式為 int (*p1)[3]= &ar ar需要取地址; 其長度為8 因為就是一個指標的長度 這個指標的型別為 int(*)
2.指標陣列,本質是一個數組,數組裡的元素代表的是陣列的各個元素的地址。因此相比於指標不需要(),但是作為一個數組,需要定義其長度, 表示方式為 int * p2[3] = {&ar[0],&ar[1],$ar[2]}。其長度為24 因為其本質是一個數組,型別為 int *[3]
指標陣列最典型的例子就是main函式:int
main(
int
argc,
char
*argv[]) 第二個引數是一個字串指標陣列