C語言 關於指標總結筆記

2021-08-21 04:55:25 字數 2418 閱讀 5311

脆弱的人才會四處遊說自己的不幸,堅強的人只會不動聲色地成長。

一、指標說明

指標是包含另一變數的位址變數。

1、int *p

p是乙個指標,指向整型數。

2、int *p()

p是乙個函式,該函式返回乙個指向整型的指標。

3、int (*p)()

p是乙個指標,該指標指向乙個函式,這個函式返回乙個整數。

4、int *p

p是乙個陣列,該陣列的每乙個元素是指向整數的指標。

5、int (*p)

p是乙個指標,該指標指向乙個陣列,這個陣列的每乙個元素是乙個整數。

6、int *(*p)()

p是乙個指標,該指標指向乙個函式,這個函式返回乙個指向整數的指標。

二、指標的初始化(賦位址)

1、通過符號&取變數(包括結構變數、陣列第乙個元素)的位址賦給指標;

2、把陣列名賦給指標;

3、把函式名賦給指向函式的指標;

4、動態分配記憶體;

示例:struct c ;

struct c *p;

p=(struct c*)malloc(sizeof(struct c));

三、指標與陣列、函式的關係

1、對於一維陣列int a或指標int *a

a+i指向a[i]

2、對於字串char s[i]或指標char *s

s+i指向第i個字元s[i]

3、對於二維陣列int a[i][j]

*a+j指向a[0][j]

*(a+i)指向a[i][0]

*(a+i)+j指向a[i][j]

示例:對於a[2][3]=;

有*(*(a+1)+1)=5;

4、對於字串陣列char p[i][j]或字元型指標陣列char *p[i]

*p+j指向第0個字串的第j個字元

*(p+i)指向第i個字串的第j個字元

示例:對於*p=;有*(*(p+1)+1)="e";

對於char p[3]=;有*(*(p+1)+1)="e";

5、對於指標陣列int *a[i]

a[i]指向變數i,即*a[i]=變數i或a[i]=&變數i

6、對於結構struct xy

*p;p是指向結構xy的指標

(*p).x或p→x是表示x的內容

(*p).y或p→y是表示指標y的值(位址)

*(*p).y或p→y是表示y所指的內容

&(*p).x或&p→x是表示x的位址

四、指標的分類

1、近指標(near)

近指標為16位指標,它只含有位址的偏移量部分,近指標用於不超過64k位元組的單個資料段或**段。在微、小和中編譯模式下產生的資料指標是近指標(預設狀態),在微、小和中編譯模式下產生的碼指標(指向函式的指標)是近指標(預設狀態)。

2、遠指標(far)

遠指標為32位指標,指標的段位址和偏移量都在指標內,可用於任意編譯模式,每次使用遠指標時都要重灌段暫存器,遠指標可定址的目標不能超過64k,因為遠指標增減運算時,段位址不參與運算,在緊湊、大和巨模式下編譯產生的資料指標是遠指標(預設狀態)。

3、巨指標(huge)

巨指標為32位指標,指標的段位址和偏移量都在指標內,可用於任意編譯模式,遠指標可定址的目標可以超過64k,巨指標是規則化的指標。

五、指標的轉換

1、遠指標轉換成巨指標

使用以下函式

void normalize(void far **p)

六、指標的使用

1、將浮點數轉換為二進位制數

float ff = 16.5;

unsigned char *cc;

(float*)cc=&ff;

此時cc的內容為「00008441」,即cc第乙個位元組=0,第二個位元組=0,第三個位元組=0x84,第四個位元組=0x41。

2、將二進位制數轉換成浮點數

float ff;

unsigned char *cc;

cc=(unsigned char *)malloc(4);

cc=(unsigned char *)&ff;

*(cc+0)=0;

*(cc+1)=0;

*(cc+2)=0x84;

*(cc+3)=0x41;

//此時ff=16.5;

free(cc);

到此,指標筆記就全部碼完了,認真掌握了c語言指標的用法對於以後學習c++等程式語言有很大的幫助,並且靈活運用好指標也能敲出一行行高質量的**

關於C語言指標的筆記

指標這一塊一直都暈暈乎乎的。今天稍微搞懂了點,做個總結。指標裡放的是乙個位址,這個位址是指向某個東西,他可以一直變,也就是說他指向的東西可以一直變 指標初始化時,的右運算元必須為記憶體中資料的位址,不能夠是變數,也不能夠直接用整型位址值 可是int p 0 除外,該語句表示指標為空 當討論賦值的問題...

C語言指標筆記總結1

二.指標和陣列的關係 三.指標和函式的關係1 指標變數佔的位元組數 四.多級指標 五.指標和函式的關係2 指標 位址 記憶體單元的編號。指標就是位址,就是乙個記憶體單元的編號。指標變數是存放位址的變數。指標和指標變數不同,指標就是乙個值,但是通常會把指標變數叫做指標。基本型別指標 int float...

C語言筆記總結(函式與指標)

v v指標函式 顧名思義,這是乙個 函式,函式的返回值是 指標 位址 定義指標型函式的一般形式為 型別說明符 函式名 形參表 其中函式名之前加了 號表明這是乙個指標型函式 即返回值是乙個指標。型別說明符表示了返回的指標值所指向的資料型別。v總結 int p 和 int p 區別 1.int p 是乙...