C和指標 指標運算(指標加法 指標減法)

2021-08-26 12:02:18 字數 1223 閱讀 4485

①計算間隔的位元組數

②除以權重

以指標加數字為例:(指標減數字類似)

int *p1;

p1++; //加的值為sizeof(int),即加4位元組

p1+3; //加3個單元格,p1為int型4位元組,即加12個位元組

short *p2;

p2++; //加sizeof(short),加2位元組

是不是懂了呢?接下來多來點例子看看吧。(我們將陣列arr的首元素位址設為x)

int main()

; //設&arr[0]為x

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

int *q = &arr[7]; //x+28

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

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

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

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

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

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

printf("%d\n", (char **)q - (char **)p); //6(去掉乙個*求sizeof任然是指標,所以除以4位元組)

return 0;

}

列印結果和你想的一樣嗎?

再來看看~

int main()

; for(int *p=&arr[9];p>=&arr[0];p--)

return 0;

}

來看看結果:

在做指標運算時一定要注意進製、是否需要調整以及需要調整的權重是多少。

c語言 指標 ,指標運算,陣列指標

可以看到,i1的記憶體位址與p1的值相同,而p1的位址又是在一塊單獨的記憶體位址儲存。而 就是解引用 解析並返回記憶體位址中儲存的值。比如我們要取上面p1指向記憶體的值就用以下方法來取。printf 取指標指向記憶體的值 p1 d n p1 指標運算 對指標進行算術運算。c語言中的陣列其實就是一塊連...

C和指標指標

變數的值就是分配給該變數的記憶體位置所儲存的數值。int a 112 int d a 指標d指向a,但是變數d表示變數a的位址,d表示a的內容。的優先順序高於 cp 設計3個步驟 1 操作符產生cp的乙份拷貝 2 操作符增加cp的值 3 在cp的拷貝上執行間接訪問操作 char ch a char ...

C語言指標 指標的運算

include int main void 執行這段 會出現錯誤嗎?如果出現錯誤,是什麼錯誤?分析 printf一種常規的用法就是printf please input a data 這種用法相信很多人都使用過,但是將這種用法分析一下,這樣的用法printf函式接收到的引數是乙個常量字串的首位址,然...