知識點:
(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.指標 指標,合法,表示間隔的單元個數,需要調整,調整的權重...