c指標加減值得問題

2021-09-30 12:56:11 字數 509 閱讀 9811

(1)指標加減整數:一度很疑惑資料指標在同種機器和編譯器下長度是相同的,但是不同型別指標加上同乙個整數之後值卻不一樣。

int main(void)

後來想通了,指標長度相同是儲存的位址,需要同樣的位元組數來儲存指標指向位址值。當指標加整數時目的一般是尋找指向的值而不是為了計算無用的位址值,應該是出於這種考量,c標準規定了給指標加上乙個整數實際上加的數是這個整數和指標資料型別對應位元組數的乘積。雖然規定為加整數就為位址加上實際的整數同樣可以人為控制乘以資料型別對應位元組數,但是可能這樣一般並沒有意義,出於簡單目的,於是就有了這個頂。

減去整數同加法。

(2)兩個指標相減:這樣會得到兩個位址的差值。通常這個差值沒有什麼用,但是一般可以用來判斷陣列中的元素順序呢。應該出於這個用處的目的,指標差值規定為它們之間相差的「單位」數,即指向資料型別的單位數。實際計算為位址差值/sizeof(型別)。

以上的標準規定是準確的,一些想法是自己的理解,如果錯了希望不要誤導他人。

C語言 指標的加減

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

指標的「加 減」 運算,指標儲存(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...