C語言指標小結

2021-05-30 13:40:41 字數 2104 閱讀 6820

}輸出結果同上。

指標變數位址加1

inti,*pa,a=;

pa =a;

for (i=0;i<=9;i++)

輸出結果同上。

2) 陣列名與指標的區別

陣列名是指標常量而指標是指標變數,舉乙個例子。

inti,*pa,a=;

pa =a;

for (i=0;i<=9;i++)

輸出結果同上。

這裡如果將pa換成a,那麼編譯就會出錯。

原因pa是指標變數,可以被修改,而陣列名a則為指標常量,不能被修改。那麼1)中的例子為什麼pa和可以互換呢?原因就是,之前的例子*(pa+i)與*(a+i)pa和a一直沒有變化,變化的是i,所以可以互換。

1) const型別含義

const型別為常量,不變。

const常量使用時必須初始化。並且使用const修飾的變數在程式使用中不能被改變。

intconst pa 與constint pa是一樣的,所以const與int的位置沒有固定關係。

2) constint *pa

const int *pa與int const *pa的作用是相同的,

intconst *pa與int *const pa 的區別

如果const修飾在*pi前則不能改的是*pi(即不能類似這樣:*pi=50;賦值)而不是指pi.

如果const是直接寫在pi前則pi不能改(即不能類似這樣:pi=&i;賦值)。

c語言函式引數的傳遞有三種:值傳遞、位址傳遞、引用傳遞

3.考題三:

指向函式的指標-用函式指標變數來呼叫函式

int(*p)(int x,int y)

指向函式的指標變數,其中p代表乙個函式的入口位址,例子

max(int,int);

p=max;//只需給出函式名,不需要給出引數

(*p)(a,b);

將max(a,b)的入口位址給到p那麼(*p)(a,b)相當於呼叫max(a,b)。

用指向函式的指標做函式引數

實參名 f1f2

void sub(int(*x1)(int),int(*x2)(int,int))

函式sub被呼叫時,把實參函式f1、f2的入口位址傳給形參指標變數x1和x2,在sub函式中就可以呼叫函式f1、f2了。

有人會覺得,既然是呼叫f1、f2那麼直接在sub函式中呼叫就好,為什麼非要用形參還呼叫。其實這樣做的好處是,如果sub函式需要呼叫多個不同函式,那麼使用指向函式的指標作為形參,將每次呼叫的不同函式入口位址賦值給形參就可以實現,這種做法比較符合結構化程式設計方法的原則。

返回指標的函式

型別名 *函式名(引數列表) //型別名表示返回的指標指向的型別

例如:int * a(int x,int y) //函式型別

a是函式名,呼叫它之後,會得到乙個指向整型資料的指標位址。

指標陣列定義

以一維指標陣列為例進行說明;

定義指標陣列的一般形式為:

型別名 *陣列識別符號[陣列長度]

如:int *ptr_array[10]; //陣列內資料都是指標;(優先順序比*高)

指標陣列應用

為什麼要採用指標陣列,指標陣列優點如下:

1、節省記憶體空間;

普通陣列儲存字串資料時,每行資料按照最大字串空間進行分配空間;

指標陣列儲存字串時,每行資料就是字串的位址;

所以指標資料儲存資料時,空間比較節省;

指標陣列比較適用於指向若干字串,使字串處理更加方便靈活。原因:如果不適用指標陣列,採用普通陣列,那麼當存在兩個或兩個以上字串時,那麼需要定義乙個二維陣列,實際上每個字串的長度是不固定的,要按照最長的字串來定義,這個就會浪費很多空間。

例如:char *name=;

陣列內儲存的是字串位址;

如果使用陣列來儲存,那麼需要使用二維陣列,空間浪費多。

char name=,,,,{"***puter design center陣列內儲存的是字串;

2、計算機處理速度快;

如果字串優先順序排序時,

普通資料是將陣列內的data進行優先順序排序;

指標陣列是將陣列內的位址進行優先順序排序;

所以處理速度是指標資料比較快;

c語言指標總結

第八章 指標 知識結構 1 指標的基本概念 2 怎麼定義指標 3 指標的運算 1 指標的基本概念 記憶體 以位元組為單位,由若干個位元組組成 為了便宜管理,給每個位元組編號 十六進製制 每乙個位元組的編號在整個記憶體都是唯一 定義變數 在計算機記憶體中去預定記憶體 各類變數所預定的空間大小不同 整型...

C語言小結

第一章概述 1 c語言的特點 語言簡潔 緊湊,使用方便 靈活。共有 個關鍵字,種控制語句。運算子豐富,公有 種運算子。資料結構豐富,資料型別有 整型 實型 字元型 陣列 指標 結構體 共用體等。具有結構化的控制語句 如if else while do while switch for 語法限制不太嚴...

C語言精華小結

一 c語言結構 1 主函式用main作為函式名,每個c程式都必須包含且僅含乙個main函式,c程式的執行是從主函式中的第一句開始,到主函式中的最後依據結束 2 標頭檔案的引用 include或 include name.h 3 函式由函式首部和函式體組成 函式首部,即函式的第一行,包括函式名 函式型...