1. 程式人生 > >關於指標的小結

關於指標的小結

1、指標的宣告

TypeName *name;

2、指標的賦值

一般變數:

int * p1 = &a;

陣列:

int *p2 = arr[30];

p2指向arr陣列中第一個元素;

申請記憶體:

int *p3 = new int;

3、解除引用

對指標解除引用意味著獲取指標指向的值,即使用*來解除引用。(就是讀取指標指向的值!!!!!)

4、指標的運算

指標可以進行運算,指標加1相當於在原來的地址上加上指向物件佔用的總位元組數。

指標與指標做差當且僅當兩指標指向同一個陣列時有意義,結果為兩元素之間的間隔。

5、動態陣列

使用new建立陣列,delete釋放空間,例:

int size;
cin>>size;
int *pz = new int [size];
...
delete []pz;

6、陣列表示法與指標表示法

使用方括號陣列表示法等同於対指標解除引用:

arr[i] = *(arr+i)

arr+i = &arr[i]

 

7、陣列結構指標組合

結構

struct antarctica_years_end

{

  int year;

}

建立這種型別的變數:

antarctica_years_end  s1,s2,s3;

訪問成員:

s1.year=2018;

建立指向結構的指標

antarctica_years_end *pa = &s1;

使用間接成員與算符來訪問:

pa->year = 2018;

建立指標陣列:

const antarctica_year_end *arr={&s1,&s2,&s3};

建立一個指向上述陣列的指標:

const antarctica_year_end **ppa=arr;

其中arr是一個數組的名稱,因此他是第一個元素的地址。

但其第一個元素為指標,因此ppa是一個指標,指向一個指向const antarctica_year_end的指標。

由於ppa是一個指向結構指標的指標,因此*ppa是一個結構指標,可使用它來訪問人成員:

(*ppa)->year 

 

 

 

 

以上!!