精品理论电影在线_日韩视频一区二区_一本色道精品久久一区二区三区_香蕉综合视频

計算機二級C基礎:C語言指針的運算

發布時間:2011-08-29 共1頁

  指針的運算實質是地址的運算。c語言有一套適用于指針、數組等地址運算的規則,正是這套規則賦予了C語言出色的處理能力。
  對于指針指向變量,能進行基類型數據所能進行的全部運算。
  1.引用運算
  1)取地址運算(&)
  取地址運算“&”,我們已非常熟悉。對指針變量進行取地址運算,可以得到指針變量本身的地址。
  2)取內容運算(*)
  取內容運算“*”,前稱指針運算,用于獲取地址數據對應存儲單元的內容。取內容運算的優先級與取地址運算優先級相同,也為第2級,結合性亦為右結合。對指針變量,進行取內容運算可以得到指針變量所指向的數據。
  取內容運算與取地址運算實質上是一對互逆運算。例如:
  int a, p=&a;
  *(&a)就是a,&(*p)就是p;p指向a,*p與a等價。
  2.算術運算
  指針變量可以進行有限的算術運算。
  1)加減運算
  指針變量“加上”或“減去”一個整數n,相當于指針變量加上或減去n個指針所指向數據的存儲單位,即指針由當前指向位置向后或向前移動n個指針所指向數據的存儲單位。
  加減運算常用于數組的處理。對指向一般數據的指針,加減運算無實際意義。例如;
  int a[10],*p=a,*x;
  x=p+3;/*實際上是p加上3*2個字節賦給x,x指向數組的第三個分量*/
  對于不同基類型的指針,指針變量“加上”或“減去”一個整數n所移動的字節數是不同的。例如:
  float a[10],*p=a,*x;
  p=p+3;/*實際上是p加上3*4個字節賦給x,x依然指向數組的第三個分量*/
  2)自增自減運算
  指針變量自增、自減運算具有上述運算的特點,但有前置后置、先用后用的考慮,務請小心。例如:
  int a[10],*p=a,*x;
  x=p++;/*x指向數組的第一個分量,p指向數組的第二個分量*/
  x=++p;/*x、p均指向數組的第二個分量*/
  *p++相當于*(p++)。*(p++)與(*p)++含義不同,前者表示地址自增,后者表示當前所指向的數據自增。
  3)指針相減
  指針相減得到兩指針之間數據的個數,一般用于數組處理。
  3.關系運算
  兩指針的關系運算表示兩指針的先后位置關系,一般用于數組處理。除空指針外,不
  能進行指針與一般數值的關系運算。

百分百考試網 考試寶典

立即免費試用