關於指標的小結
阿新 • • 發佈:2018-11-22
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
以上!!