C語言 > 指針
阿新 • • 發佈:2017-10-24
數據 和數 然而 另一個 不能 取地址 元素 註意 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語言 > 指針