指標 1,怎麼加?

2021-09-14 05:03:22 字數 690 閱讀 3153

指標+1,是加乙個單元格還是加乙個位元組呢,

先看乙個程式:

#include int main()

; int *p = arr;

p++;//p = p + 1

*p = 10;

p++;

*p = 20;

printf("%d,%d\n",arr[0],arr[1]);

return 0;

}

這個程式通過編譯結果為 1 10,這個結果說明p++後,arr[1]的值被更換為10.

所以指標+1就是加乙個單元格,那為什麼會是加乙個單元格而不是乙個位元組呢?看乙個圖。

這個圖是假設p++加乙個位元組,p++,*p=10 的位址賦值後(紅色框),arr[0]=2561(藍色框),顯然這個值不是我們想要的結果。

所以指標+1,並非加乙個位元組,而是加乙個單元格。

下面有幾個題

指標的算術運算 +,-

指標+i,表示加i個單元格,其加 i * sizeof(指標本身去掉乙個 * )位元組

int main()

指標加1存在的可能及指標的算術運算

指標加1的三種可能 1.指標加1,加整個陣列 不太現實 2.指標加1,加乙個單元格 可以,常用 3.指標加1,加乙個位元組 太麻煩,但考試常出 舉例 小端 低位址,存放小資料 假如指標加1代表加乙個位元組的話 乙個單元代表4個位元組,首先將第一行每個單元格擴大四倍得到第二行 int p arr p ...

指標 陣列 加常數

includeint main int ptr1 int a 1 int ptr2 int int a 1 printf x n x n a 0 a 1 printf x x ptr1 1 ptr2 return 0 結果 22fef8 22fefc 4 2000000 通常x86機器採用的小段儲存...

Deque 加雙指標

樣例輸入 1 複製 8 l 1r 2 r 3?2l 4?1 l 5?1輸出 1 複製 112 輸入 2 複製 10 l 100 r 100000 r 123 l 101 123 l 10 r 115 100 r 110 115 輸出 2 複製 021 說明 提示 let s take a looka...