C 指標的運算

2022-02-22 09:47:52 字數 1106 閱讀 5320

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

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

int  x , *p ;

p = &x ;

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

二:指標的算術運算 :

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

p +(-)n*sizeof(基型別)

char    *p ;

int *q ;

float *tk ;

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,它被初始化為...