C語言——指標的運算

來源:互聯網
上載者:User

一 :取地址運算“&”與取內容運算“*”:

單目運算“&”是取操作對象的地址 , “*”是取指標指向的對象的內容 , 兩者互為逆運算

int  x , *p ;
p = &x ;

&(*p) = p 表示指標  ; *(&x)= x 表示變數x .

二 :指標的算術運算 :

指標的運算與其基底類型有關 , 一般的,如果p是一個指標 ,n是一個正整數 ,則對指標 p 進行 +(-)操作後的實際地址是 :

p +(-)n*sizeof(基底類型)
char    *p ;
int *q ;
float *tk ;
//假設當前地址為 : p = 2110H , q = 2231H , tk = 2478H
p += 1 ; // p = p + 1 = 2111H
q += 4 ; // q = q + 4*4 = 2239H
tk -= 3 ; // tk = tk -3*8 = 246CH

三 : 指標自加 ,自減運算 :

指標的自加 ,自減運算也是地址運算

m = * p ++ 等價於 m = *(p ++)

取指標 p 當前所指變數的值賦給變數 m   ;  p 做加 1 運算 , 指向下一個目標變數 .

m = * ++ p 等價於 m = * ( ++ p)

p 做加 1 運算 , 指向下一個目標變數  ; 取指標 p 當前所指變數的值賦給變數 m .

m = (*p)++  與  m = ++(*p)

前者是將指標 p  所指的變數的值賦給變數 m  , 然後變數 *p 自加 1  ; 

後者是將指標 p 所指的變數 *p 的值自加 1 後賦給變數 m .

四 :指標間的減法運算 :

指向同一群組類型相同資料的指標之間可以進行減法運算 , 相減的結果表示兩指標間相距的資料的個數 .

五 :指標的關係運算 :

p , q 指向同一個數組 , p > q 表示p 是否指向 q 所指位置的後面 , 若成立 則 運算式的值為 非 0 , 否則為 0 .

六 :指標的下標運算 :

p[i] = *(p + i) ;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.