C語言指標1 定義

2021-05-23 05:52:51 字數 909 閱讀 6019

指標是乙個變數,儲存的是另乙個變數的位址。

例如,有如下**:

int a = 3;

int *ptr = &a;//定義乙個指向整形的指標,變數前加乙個*即為乙個指標變數

可以這麼理解,定義變數a後,系統為a分配乙個大小為sizeof(int)的空間,該空間的位址存放在變數ptr中。

如果printf("%p", ptr);則列印輸出0xbfb12000。

用圖表示即為:

變數ptr=0xbfb12000, *ptr=3(0xbfb12000空間儲存的值), &ptr=ptr變數的位址

區分變數與指標變數:

int a;

float b;

double c;

char d;

char e[8];

float *f = &b;

char *g= "abcdefg";

void *h;

其中a,b,c,d,e[0]是普通變數,e是陣列的首位址,可看做是乙個指標,f,g,h都是指標變數。

變數的位址用取位址符來獲取,如&a, &b, &c, &d,&e[0](取e[0]的位址,等於e),&e[7],同樣可以&e, &f, &g, &h。

指標的值的獲取,用*,如*f則輸出變數b的值。

指標變數的型別與大小:有

int *a;

float *b;

double *c;

char *d;

void *e;

還有自定義型別,等等

不管什麼型別的指標,其所占用的空間大小是一定的,在32位機上,

sizeof(float *)=sizeof(int *)=sizeof(long *)=sizeof(long long *)=sizeof(double *)=sizeof(char *)=4位元組。

c語言 指標定義

指標 精髓 指標 位址 通過變數名訪問變數,稱為直接儲存 通過位址 指標 訪問變數,稱為間接儲存 1.定義指標變數 基型別 指標變數名 說明 基型別可以是任意資料型別 說明其後的變數名為指標變數名 指標變數名是任意合法的識別符號 例如int pointer 1 2.指標變數賦值 1 先定義後賦值 i...

C語言 指標1

指標恐怕是c語言中最不容易掌握的乙個概念了,但指標又是如此的重要,可以說不會指標,c語言就等於沒學。指標到底是乙個什麼東西呢?include int main char pch null char pstr hello pointer short pshort null int pint null ...

C語言指標1

陣列與指標 陣列的名字是第一元素的位址。include int main printf str 0 的位址是 p n str 0 輸出 str 0 的位址是 000000000062fdc0陣列相鄰每一元素之間相差值 資料型別的寬度 include int main float b 3 double...