C語言 指標的運算

2021-07-30 07:32:20 字數 1254 閱讀 7601

一 :取位址運算「&」與取內容運算「*」:

單目運算「&」是取操作物件的位址 , 「*」是取指標指向的物件的內容 , 兩者互為逆運算

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) ;

C語言指標 指標的運算

include int main void 執行這段 會出現錯誤嗎?如果出現錯誤,是什麼錯誤?分析 printf一種常規的用法就是printf please input a data 這種用法相信很多人都使用過,但是將這種用法分析一下,這樣的用法printf函式接收到的引數是乙個常量字串的首位址,然...

C語言指標的運算

指標的運算實質是位址的運算。c語言有一套適用於指標 陣列等位址運算的規則,正是這套規則賦予了c語言出色的處理能力。對於指標指向變數,能進行基型別資料所能進行的全部運算。1 引用運算 1 取位址運算 取位址運算 我們已非常熟悉。對指標變數進行取位址運算,可以得到指標變數本身的位址。2 取內容運算 取內...

C語言指標的運算

指標的算術運算 指標可以加上或減去乙個整數。指標的這種運算的意義和通常的數值的加減運算的意義是不一樣的 以單元為單位。例如 例二 char a 20 int ptr int a 強制型別轉換並不會改變 a 的型別 ptr 在上例中,指標 ptr 的型別是 int 它指向的型別是 int,它被初始化為...