零基礎學C語言 指標

2021-09-11 13:30:55 字數 1457 閱讀 3488

成也指標,敗也指標。對於c語言來說,指標是他的招牌,卻也是最令人望而生畏的。我會嘗試用很號理解的方式去闡述,希望你可以看的明白。

其實指標就是乙個普通的變數,只是他存放的是乙個位址,他占用的空間是固定的,在32位系統上是4個位元組,在64位的系統上是8個位元組。

#include

intmain();

char *name = "tom";

printf("num is %d\n", *num_point);

printf("names is %s\n", names[0]);

printf("names is %s\n", *names);

printf("name is %s\n", name);

}複製**

執行結果如下,其中的*是乙個取值符號:

num is 10

names is alan

names is alan

name is tom

複製**

這裡解釋一下陣列指標和字串指標。其中,陣列指標是定義了乙個指向乙個陣列的指標,而且是指先陣列第乙個元素的。所以在上面的names[0]*names結果是一樣的。我用int指標來作為對比解釋:

我們在定義的時候可以分解為這樣:

int num = 10;

int *num_point;

num_point = #

複製**

char *names = ;

printf("names is %s\n", names[0]);

printf("names is %s\n", *names);

複製**

所以其中names就是乙個位址,指向陣列的第乙個元素,通過取值符號*得到的就是「alan」

type *ptr    //type型別的指標,名為ptr。

複製**

*ptr    //ptr所指向位置的值

複製**

*(ptr + i)    //(ptr所指向位置加上i)的值,以位元組為單位的話,應該是ptr所指向的位置再加上sizeof(type) * i。

複製**

&thing    //thing的位址。

複製**

type *ptr = &thing    //名為ptr,type型別的指標,值設定為thing的位址。

複製**

ptr++    //自增ptr指向的位置。

複製**

零基礎搞懂C語言指標

c語言中把專門存放變數位址的變數 指標變數 簡稱指標。什麼這樣說你不明白?位址記憶體單元 變數100020x 10021y 1004 115z 2000 1000 p其中變數x的記憶體單元的位址為1000,而變數p的值是變數x的記憶體單元的位址所以稱p為指標變數簡稱指標。前邊我們已經學過 變數的定義...

零基礎學c語言教程

c語言通過自學軟體工程師要多久?許多同學問c語言怎麼學?考二級c的話c語言書籍的話推薦看譚浩強,但是你要用於工作上的話我推薦你看傳智播客的c語言教程!精通c語言肯定得花上幾個月時間。很多人對學習c語言感到無從下手,經常問我同乙個問題 究竟怎樣學習c語言?我是乙個教師,已經開發了很多年的程式,和很多剛...

零基礎學Python之前需要學c語言嗎

python本身是比較適合作為入門程式語言來學習的,一方面python的語法結構比較簡單清晰,實驗也相對比較容易完成,這會逐漸增強初學者的學習信心,另一方面python屬於全場brzdum景程式語言,未來在很多領域都能用得上。先學哪種語言好,我認為需要分不同的人來說。對於計算機專業的大學生來說,我覺...