指標的算數運算

2021-09-11 08:50:26 字數 1230 閱讀 6402

指標加法

「指標+1」可能出現的情況:

加整個陣列

加1個位元組

加1個單元格

討論第1種情況:

加整個陣列無現實意義,不可取。

討論第2種情況:

int arr = ;

int *p = arr;

*p = 10;

p++;

*p = 20;

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

整形陣列乙個單元格佔四個位元組,將10轉化成十六進製制為ox0000000a,存放進四個格仔裡

此時p指向第乙個位元組,由於小端存放小資料,存放後如圖所示

指標+1,p指向第二個位元組,將20轉化成十六進製制為ox00000014,存放進四個格仔裡

這時讀取arr[0]為前四個位元組,即ox140a,arr[1]為00000000,與所賦值不符。

討論第3種情況:

加乙個單元格的情況符合現實操作

int main()

;//x

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",(char ***)q-(char ***)p);//8

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

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;
總結 :指標算數運算(模擬日期)

指標 + i :加 i 個單元格,加 i * sizeof(去掉乙個 * )個位元組。

指標 + 指標 :沒有意義,非法。

指標 - 指標 :間隔的單元個數(可正可負)1、算出位元組數,2、除以sizeof(指標去掉乙個*)

指標的算數運算

1.位元組數 char short int float double long longlong 位元組數 1 2 4 4 8 4 8 2.指標 1,計算指標 1具體加幾個位元組的方法是,給指標去掉乙個型號,讓後用sizeof 求出位元組大小 int p 整形指標變數 p 1,加4位元組 sizeo...

指標的算數運算

我們知道指標也是一種變數,既然是變數理論上便可進行算數運算,今天我們來一起 一下指標的算術運算。printf d,d n 0xa,0x0000000a int arr 10 int p arr p 10 p 大家看一下這串 思考一下這裡面的p 是加的什麼呢?這個p 意思是加乙個單元格,我們知道指標是...

指標中的算數運算

一 指標所佔的位元組 在x86 或者32位平台的指標4佔位元組。在x64 或者64位平台的指標8佔位元組。二 指標加法運算 指標加法運算需要調整,調整的權重是指標本身去掉乙個 號,在求sizeof 例1 int main 三 指標減法運算 指標減法運算需要調整,調整的權重是指標本身去掉乙個 號,在求...