C語言之多級指標

2021-08-05 19:34:19 字數 2072 閱讀 1994

指標用途:

1、使程式簡潔、緊湊、高效

2、記憶體的動態分配

3、記憶體位址的直接處理

4、函式呼叫時批量引數的傳遞

5、複雜資料結構的簡潔表達等許多其它資料型別難以實現的複雜操作

等等……

一、 多級指標

1、為什麼需要使用二級指標

------使用二級指標是為了函式呼叫結束可以使作為函式實參的指標的值的改變保留下來

------資料結構鍊錶和二叉樹當中經常用到二級指標

2、const?

char const *p; // 所有資料不可更改,也就是說*p是常量字串

char *const p; // 指標變數是不可更改,也就說指標只能指向乙個位址,不能更改為其它位址

char const*const p; // 內容和指標都不能更改

const char* const p; // 同上,內容和指標不更改

備註:*作為分界線,在*左有const就說明內容不能更改;在*右邊就說明指標不能更改;而左邊的const和char順序無關。

3、二級指標

指向指標的指標,稱為二級指標,用於存放二級指標的變數稱為二級指標變數。二級指標又分為為指向指標變數的指標和指向陣列的指標。

指向陣列的指標:陣列與其它變數在使用上有很大的不同,無論是字元型、整型等,或是結構體型別或者指標型別的變數。

設計工程案例:

// 程式名稱:指標應用

#include"stdafx.h"

#include// 宣告c語言標準標頭檔案

int_tmain(intargc, _tchar* argv)

int a[5] = ; // 宣告普通陣列,且初始化

int *sum[5]; // 宣告指標陣列

// 初始化指標陣列

for (int i = 0; i < 5; i++)

sum[i] = &a[i]; // sum[0]=&a[0] sum[1]=&a[1].........

// 宣告二級指標

int **p;

p = sum; // 初始化二級指標

for (int i = 0; i < 5; i++)

printf("%4d",**(p++));

return 0;

一、 指標函式和函式指標

1、指標函式

指標函式是指標帶指標的函式,即本質是乙個函式。函式都有返回型別(如果不返回值,則為無值型),只不過指標函式返回型別是某一型別的指標。

定義格式

型別名 *函式名(函式引數列表);

其中,字尾運算子括號」()」表示這是乙個函式,其字首運算子星號」*」表示此函式為指標型函式,其函式值為指標,即它帶回來的值的型別為指標,當我們呼叫這個函式後,將得到乙個「指向返回值的為…的指標(位址),型別名表示函式返回的指標指向的型別。

例如:int *pfun(int ,int); // *號優先順序低於(),pfun首先和後面的()結合運算,pfun是乙個函式。即:

int *(pfun(int,int));

設計工程案例:

// 程式名稱:指標應用

// 統計三位學生的成績

#include"stdafx.h"

#include

float *find(float (*pointer)[4], intn) // 定義指標函式

float *pt;

pt = *(pointer + n);

return (pt);

int_tmain(intargc, _tchar* argv)

staticfloat score[4] = , , };

float *pf;

int i, m;

printf("請輸入要查詢的編號:");

scanf("%d",&m);

printf("the score of n0.%d are:",m);

pf = find(score, m - 1);

for (int i = 0; i < 4;i++)

printf("%6.2f ",*(pf+i));

printf("");

return 0;

C 之 多級指標

多級指標 分析原則,從變數名處起,根據運算子優先順序結合,一步一步分析。int p 3 首先從p處開始,先與結合,因為其優先順序比 高,所以p是乙個陣列,然後再與 結合,說明陣列裡的元素是指標型別,然後再與int結合,說明指標所指向的內容的型別是整型的,所以p是乙個由返回整型資料的指標所組成的陣列。...

C語言之多檔案執行 !

在不同的編輯環境下有不同的編輯方法。1.在turbo c整合環境裡 先輸入編輯儲存好檔案,在編譯狀態下,建立乙個 專案檔案 其中只包含組成程式的所有檔名,若這些原始檔不在當前目錄下,應指出路徑。然後存檔,將此專案副檔名寫成 prj project 在主選單中選擇project選單,按回車出現下拉列表...

C語言之指標

指標型別的本質分析 1 指標的本質 指標的本質 一種復合的資料型別。下面我將以下面幾個作為例子進行展開分析 a int p b int p c int parvalue 3 d int pfun 分析 所謂的資料型別就是具有某種資料特徵的東東,比如資料型別char,它的資料特徵就是它所佔據的記憶體為...