如何讓小白輕鬆理解c語言難點——指針?

例如這個儲物櫃:

如何讓小白輕鬆理解c語言難點——指針?

這些櫃子,每個櫃子都有編號,櫃子裡什麼都能放。

如果你在一張紙條上寫上「C0314」,然後把它放進 C0322 號櫃。那麼我們就說「C0322 號櫃是『指向 C0314 號櫃的指針』」

1.指針運算符

(1)取地址運算符&

取地址運算符&是單目運算符,其結合性為自右至左,其功能是取變量的地址。在scanf函數及前面介紹指針變量賦值中,我們已經瞭解並使用了&運算符。

如何讓小白輕鬆理解c語言難點——指針?

(2)取內容運算符*

取內容運算符*是單目運算符,其結合性為自右至左,用來表示指針變量所指的變量。在*運算符之後跟的變量必須是指針變量。需要注意的是指針運算符*和指針變量說明

中的指針說明符* 不是一回事。在指針變量說明中,“*”是類型說明符,表示其後的變量是指針類型。而表達式中出現的“*”則是一個運算符用以表示指針變量所指的變量。

main(){

int a=5,*p=&a;

printf ("%d",*p);

}

......

表示指針變量p取得了整型變量a的地址。本語句表示輸出變量a的值。

如何讓小白輕鬆理解c語言難點——指針?

2.指針變量的運算

(1)賦值運算

指針變量的賦值運算有以下幾種形式:

①指針變量初始化賦值,前面已作介紹。

②把一個變量的地址賦予指向相同數據類型的指針變量。例如:

int a,*pa;

pa=&a; /*把整型變量a的地址賦予整型指針變量pa*/

③把一個指針變量的值賦予指向相同類型變量的另一個指針變量。如:

int a,*pa=&a,*pb;

pb=pa; /*把a的地址賦予指針變量pb*/

由於pa,pb均為指向整型變量的指針變量,因此可以相互賦值。

④把數組的首地址賦予指向數組的指針變量。

例如: int a[5],*pa;

pa=a; (數組名錶示數組的首地址,故可賦予指向數組的指針變量pa)

也可寫為:

pa=&a[0]; /*數組第一個元素的地址也是整個數組的首地址,

也可賦予pa*/

當然也可採取初始化賦值的方法:

int a[5],*pa=a;

如何讓小白輕鬆理解c語言難點——指針?

⑤把字符串的首地址賦予指向字符類型的指針變量。

例如:

char *pc;pc="c language";

或用初始化賦值的方法寫為: char *pc="C Language";

這裡應說明的是並不是把整個字符串裝入指針變量, 而是把存放該字符串的字符數組的首地址裝入指針變量。

⑥把函數的入口地址賦予指向函數的指針變量。

例如:

int (*pf)();pf=f; /*f為函數名*/

寫在最後

喜歡此篇文章或覺得這篇文章對你有幫助的讀者可以點播關注或者轉發,以便幫助更多對如何學習C/C++迷茫的小白。

=->學習基地見評論區


分享到:


相關文章: