指標的初階

2021-09-24 21:14:39 字數 3021 閱讀 1006

1. 指標的概念

指標就是變數,就是存放位址的變數

#include

#include

intmain()

對於32位的機器,假設有32根位址線,那麼假設每根位址線在定址的是產生乙個電訊號正電/負電(1或者0),那麼32根位址線產生的位址就會是:

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000001

…11111111 11111111 11111111 11111111

每個位址標識乙個位元組,那我們就可以給 (2^32byte == 2^32/1024kb == 2^32 /1024/1024mb==2^32/1024/1024/1024gb == 4gb) 4g的空閒進行編址。

對於64位的機器,假設有64根位址線,那麼32根位址線產生的位址就會是:

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001

,,,,,,,

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

每個位址標識乙個位元組,那我們就可以給 (2^64byte == 2^64/1024kb == 2^64 /1024/1024mb==2^64/1024/1024/1024gb == 8gb) 8g的空閒進行編址。

在32位的機器上,位址是32個0或者1組成二進位制序列,那位址就得用4個位元組的空間來儲存,所以乙個指標 變數的大小就應該是4個位元組。 在64位機器上,如果有64個位址線,那乙個指標變數的大小是8個位元組,才能存放乙個位址。

綜上總結:指標的大小在32位平台是4個位元組,在64位平台是8個位元組

2. 指標和指標型別

char  *pc = null;

int *pi = null;

short *ps = null;

long *pl = null;

float *pf = null;

double *pd = null;

總結:指標的型別決定了指標向前或者向後走一步有多大(距離)。

3.指標運算

int arr=

;for

(int i =

0; i <

sizeof

(arr)

/sizeof

(arr[0]

); i++

)

int arr=

;printf

("%d\n"

,(arr +9)

- arr)

;//結果輸出為9

4.二級指標

int a =10;

int* pa =

&a;int

** ppa =

&pa;

//a的位址存放在pa中

//pa的位址存放在ppa中

//pa是一級指標,ppa是二級指標

5.指標與陣列(名)

int arr[10]

=;printf

("%p\n"

, arr)

;printf

("%p\n"

,&arr[0]

);//arr=00f3fb30

// &arr[0]=00f3fb30

int arr[10]

=;int* p = arr;

int size =

sizeof

(arr)

/sizeof

(arr[0]

);for(

int i =

0; i < size; i++

) 輸出為:

//&arr[0] = 008ffabc <= == = > p + 0 = 008ffabc

//& arr[1] = 008ffac0 <= == = > p + 1 = 008ffac0

//& arr[2] = 008ffac4 <= == = > p + 2 = 008ffac4

//& arr[3] = 008ffac8 <= == = > p + 3 = 008ffac8

//& arr[4] = 008ffacc <= == = > p + 4 = 008ffacc

//& arr[5] = 008ffad0 <= == = > p + 5 = 008ffad0

//& arr[6] = 008ffad4 <= == = > p + 6 = 008ffad4

//& arr[7] = 008ffad8 <= == = > p + 7 = 008ffad8

//& arr[8] = 008ffadc <= == = > p + 8 = 008ffadc

//& arr[9] = 008ffae0 <= == = > p + 9 = 008ffae0

6.指標陣列

指標(初階 和指標陣列

1 指標 初階 概念 指標是乙個物件,它存著乙個位址,在這個位址中存該指標的值 eg 門牌號 001 小呂家 32位作業系統 32條位址匯流排,可以查詢 2 32的定址範圍 2 32 1024 1024 4g 指標佔4位元組 32位作業系統4位元組,64位下8位元組 不同型別的指標可以接收不同型別的...

資料儲存以及初階指標應用

大端位元組序 指資料的低位指向記憶體的高位址,資料的高位指向記憶體的低位址。小段位元組序 指的是資料的低位指向記憶體的低位址,資料的高位指向記憶體的高位址。任意型別氣泡排序練習 3 任意型別氣泡排序 include include struct stu 結構體中的年齡 int cmp age con...

Window GDI入門初階

好久沒發貼了,今天手癢癢,也發乙個。gdi的繪圖函式基本上都是有狀態的,所有的函式都要求乙個hdc型別的控制代碼。這個hdc的獲得有幾個途徑beginpaint,getwindowdc,getdc.他們的引數都只需要乙個hwnd就差不多了。記得呼叫了beginpaint後要呼叫endpaint進行清...