指標的算數運算

2021-08-17 17:08:09 字數 1157 閱讀 5425

1.位元組數

char    short    int    float   double    long   longlong 

位元組數      1           2        4       4          8            4          8

2. 指標+1,計算指標+1具體加幾個位元組的方法是,給指標去掉乙個型號,讓後用sizeof()求出位元組大小

int* p

整形指標變數 p+1,加4位元組   sizeof(int) == 4

double* p;

浮點型指標變數 p+1,加8位元組    sizeof(double) == 8

char **p;

字元型指標變數 p+1,加4位元組    sizeof(char *) == 4  

例如:int main()

3.指標-1

對於指標的減法而言  它可以表示為 指標減去乙個數數,和指標加乙個數 差不多 都需要調整權重

int main()

4.指標-指,指標-指標表示兩個指標之間間隔的單元格仔數

int main()

;int* p = &arr[1]; 

int* q = &arr[9];

printf("%d\n",p-q);// -8 表示p和q間隔八個單元格  (p-q)/sizeof(int)=-8

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

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

8  (p-q)/sizeof(char*)=8

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

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

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

printf("%d\n",(long long)q-(long long)p);//32 此時p q不是指標  q-p=32

return 0;

注:指標+指標是非法操作

指標演算法只能解一次應用,也就是去掉乙個*

指標的算數運算

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

指標的算數運算

指標加法 指標 1 可能出現的情況 加整個陣列 加1個位元組 加1個單元格 討論第1種情況 加整個陣列無現實意義,不可取。討論第2種情況 int arr int p arr p 10 p p 20 printf d,d n arr 0 arr 1 整形陣列乙個單元格佔四個位元組,將10轉化成十六進製...

指標中的算數運算

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