C語言進階(二):指針與指針變量

C語言進階(二):指針與指針變量

1 指針與指針變量

1.1 區別
 牢記三句話:
 指針就是地址,地址就是指針;指針變量是一個變量,它保存了基本類型變量的地址。
 如果指針變量p保存了變量a的地址,那麼稱作p指向了a,*p 就是變量a。
 如果p是一個指針變量,*p 表示了以 p 的內容爲地址的變量,就是p指向的變量。

C++實例

int a ;  //定義int類型變量
int *p = &a;   //變量 p 是一個 int* 類型的一級指針變量,&是取地址符,p保存了a 的地址
cout << *p <<endl; //輸出 p 指向變量的值,即輸出a的值
cout <<  p << endl; //輸出 p 的值,即輸出變量a在內存中的地址
int **q;  //定義二級指針變量
q = &p; // 二級指針變量q保存了一級指針變量p的地址
cout << q <<endl; //輸出指針變量p在內存中的地址
cout << *q << endl; //輸出q指向變量的值,即變量p的值,即a的地址
cout << **q << endl; //可以這樣理解  cout<<*(*q), 等價於 cout <<*p, 即輸出a的值
1.2 指針的作用

直接訪問硬件

快速傳遞數據(指針表示地址)

返回一個以上的值返回一個(數組或者結構體的指針)

表示複雜的數據結構(結構體)

方便處理字符串

指針有助於理解面向對象

1.3 *號的三種含義

(1)數學運算符

i = 3 * 5;

(2)定義指針變量

int* i

(3)指針運算符(取值):

*p   // 取p的內容(地址))在內存中的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章