C語言 指標的加減

2021-08-19 14:41:21 字數 904 閱讀 7130

1.指標+數字

指標加法需要調整,調整的權重為sizeof(指標去掉乙個*)

#include int main()

2.指標-數字

指標減法需要調整,調整的權重為sizeof(指標去掉乙個*)

#include int main()

3.指標+指標,非法

4.指標-指標,合法,表示間隔的單元個數,需要調整,調整的權重為sizeof(指標去掉乙個*)

指標-指標分為兩步

①算出間隔位元組數

②除以調整的權重

#include int main()

; int *p = &arr[1];//x+4

int *q = &arr[9];//x+36

printf("%d\n", p - q);//-8

printf("%d\n", q - p);//8

printf("%d\n", (short *)q - (short *)p);//16

printf("%d\n", (long *)q - (long *)p);//8

printf("%d\n", (float *)q - (float *)p);//8

printf("%d\n", (long long *)q - (long long *)p);//8

printf("%d\n", (double *)q - (double *)p);//4

printf("%d\n", (char *)q - (char *)p);//32

printf("%d\n", (long)q - (long)p);//32

return 0;

}

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

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

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

知識點 1 指標和指標可以做減法操作,但不適合做加法運算 2 指標和指標做減法適用的場合 兩個指標都指向同乙個陣列,相減結果為兩個指標之間的元素數目,而不是兩個指標之間相差的位元組數。比如 int int array 4 int p int1 int array 0 int p int2 int a...

C語言中的指標加減偏移量

首先看一段程式 輸出結果為 2,5 第乙個結果好說,a 1後指標指向了陣列中的 2 而第二個為什麼輸出 5 呢。原理是c語言中的指標加減後,會根據指標的型別採用不同的偏移量。比如,int a int b a 1 則 b a sizeof int char a char b a 1 則b a size...