指標 陣列 加常數

2021-05-28 14:12:55 字數 834 閱讀 8511

#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機器採用的小段儲存

base address+0 byte0

base address+1 byte1

base address+2 byte2

base address+3 byte3

moto機器採用大端儲存

base address+0 byte3

base address+1 byte2

base address+2 byte1

base address+3 byte0

本題記憶體結構如圖
[1000]  [2000] [3000] [4000] [5000]  位址[5000]沒有的 &a+1 位址就是 [4000]位址加一 這裡表示[5000] ptr1[-1]值為 [4000] 即4
(int *) ((int)a +1) 首先a是陣列首位址 轉換成int型22fef8即為int型 ((int)a+1) 變成了22fef9 (移動乙個位元組) 輸出時為2000000

定義定常陣列型別

typedef int array type 10 定義新型別arrat type,arrat type是10大小的int 陣列指標型別。typedef int array pointer type 10 定義新型別array pointer type,array pointer type是10大小...

陣列,指標,指標陣列,陣列指標

指標是在32位系統下佔四個位元組,64位系統下佔八個位元組的一種型別,指標指向的內容可以是常量,變數,函式,結構體,指標本身,陣列,等等.一級指標 一級指標常常在函式傳參時使用,可傳的引數有一維陣列,常量指標,函式指標等等都可以 但我們要注意不要在函式中,通過改變形參的指向來達到改變實參指向的效果,...

指標, 指標的指標, 陣列, 指標陣列, 陣列指標

指標 int a 10 int p a 指標的指標 int b 20 int p b int p2p p 簡單陣列 int c 10 整數陣列,含有10個整數元素 也就是說每乙個元素都是整數 指標陣列 int p 10 指標陣列,含有10個指標元素 也就是說每乙個元素都是指標 陣列指標 int p ...