1. 程式人生 > >C語言 > 指針

C語言 > 指針

數據 和數 然而 另一個 不能 取地址 元素 註意 c語言

C語言 數組和指針

const:

關於指針和const需要註意一些規則。首先,把const數據或非const數據的地址初始化為指向const的指針或為其賦值是合法的。

然而,只能把非const數據的地址賦給普通指針。(即const的值不能賦給普通指針);

指針和多維數組:

zippo == &zippo[0];

zippo+2 == &zippo[2];

*(zippo+2) == &zippo[2][0];

*(zippo+2) + 1 == &zippo[2][1];

*(*(zippo+2) + 1) == zippo[2][1];

指向多維數組的指針:

Int (* pz)[2]; >> pz指向一個內含兩個int類型的數組;

(如: zippo[4][2];)

Int * pax[2]; >> pax 是一個內含兩個指針元素的數組 , 每個元素都指向int的指針;

(差不多和數組的意思一樣,就是聲明了兩個指針,一個是pax[0],另一個是pax[1])

(如pax [0] = zippo; pax[1] = zippp; >> *pax[0] == *pax[1];)

數組變量是const的指針 , 所以不能被賦值 :

int a[] <==> int * const a =….

數組變量本身表達地址 , 所以 :

int a[10]; int * p = a; // 無需用 & 取地址

但是數組的單元表達是變量 , 需要用 & 取地址

a == &a[0]

[ ] 運算符可以對數組做 , 也可以對指針做 :

p[0] <==> a[0];

* 運算符可以對指針做 , 也可以對數組做 :

*a = 25;

C語言 > 指針