1. 程式人生 > 實用技巧 >陣列指標 指標陣列

陣列指標 指標陣列

陣列指標 指標陣列 陣列的名稱代表的含義 各自的長度和代表的含義

#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(intargc,char*argv[]) 第二個引數是一個字串指標陣列