C語言指標與指標之間的加減運算

2021-10-06 20:26:46 字數 1095 閱讀 9805

知識點

(1)指標和指標可以做減法操作,但不適合做加法運算;

(2)指標和指標做減法適用的場合:兩個指標都指向同乙個陣列,相減結果為兩個指標之間的元素數目,而不是兩個指標之間相差的位元組數。

比如:int int_array[4] = ;

int *p_int1 = &int_array[0];

int *p_int2 = &int_array[3];

p_int2 - p_int1 的結果為 3,即是兩個之間之間的元素數目為 3 個。

如果兩個指標不是指向同乙個陣列,它們相減就沒有意義。

(3)不同型別的指標不允許相減,比如

char *p1;

int *p2;

p2-p1 是沒有意義的。

例題:

#include

#include

#include

/*(1)使用「指標-指標」的方式計算整數陣列元素的偏移值;

*/int

main

(void);

int ages1=

;int len =

sizeof

(ages)

/sizeof

(ages[0]

);int*zeng = ages +6;

int*yong = ages +9;

printf

("yong - zeng = %d\n"

, yong - zeng)

;printf

("zeng - yong = %d\n"

, zeng - yong)

; zeng = ages +6;

yong = ages1 +3;

printf

("zeng: %p yong: %p yong-zeng: %d\n"

, zeng, yong, yong - zeng)

;system

("pause");

return0;

}

指標的「加 減」 運算,指標儲存(c語言)

int a 10 定義乙個整型變數a,並將10賦值給a int p a 定義乙個整型指標變數p,並將a的位址賦值給p p int 1000 將 int 1000強轉為整型指標 int 並賦值給p 在c語言中,記憶體可以理解為乙個字元陣列,基本單位是位元組,每個位元組包含乙個位址,而位址是由cpu的位...

指標加減運算

include include 字元陣列 指標是4位元組 指標 指標 錯誤 指標之間相加無限大,記憶體崩潰,所以指標 指標是不可能 指標 指標 得到之間間隔的單元個數。1 算出間隔的位元組數,2 除以調整的權重 int main x 可以設arr的起始位址是x int p arr 1 x 4 指標是...

C語言 指標的加減

1.指標 數字 指標加法需要調整,調整的權重為sizeof 指標去掉乙個 include int main 2.指標 數字 指標減法需要調整,調整的權重為sizeof 指標去掉乙個 include int main 3.指標 指標,非法 4.指標 指標,合法,表示間隔的單元個數,需要調整,調整的權重...