指標是 c 語言中乙個重要的概念,是 c 語言中乙個重要特色,也是 c 語言的精髓、靈魂所在。正確而靈活的運用它,可以有效地表示複雜的資料結構;能動態分配記憶體;能方便地使用字串;有效而方便地使用陣列。掌握指標的應用,可以使程式簡潔、緊湊和高效。
大約 40% 的選擇題與指標有關。對指標的掌握程度可以反映程式設計能力。
變數的位址
和指標
指標變數的定義和指標變數的基型別
給指標變數賦值
對指標變數的操作
函式之間位址值的傳遞
可以通過變數名訪問記憶體。
記憶體的最小索引單元是位元組(byte)。可以把記憶體想象成乙個超大的字元陣列。我們知道,陣列是通過下標來訪問的,那麼訪問記憶體是否有類似的呢?
乙個位址可以存放乙個位元組的資料。
位址 存放的值
……10000 『i』
10001 『l』
10002 『o』
10003 『v』
10004 『e』
10005 520
10006
10007
10008
10009 『u』
……變數名方便程式設計師。變數名對應著位址。
指標和指標變數。指標是位址的意思,c 語言裡面有專門的指標變數用於存放指標。
指標變數佔 4 個位元組。
型別名 *指標變數名
char
*pa;
// 定義乙個指向字元型的指標變數
int*pb;
// 定義乙個指向整型的指標變數
我們使用 * 符號把 pa 和 pb 宣告為指標。
char
*pa =
&a;int
*pb =
&b;
如果需要訪問指標變數指向的資料,可以使用取值運算子(*):
printf
("%c, %d\n"
,*pa,
*pb)
;
直接通過變數來訪問變數的值叫做直接訪問,比如說 a = 3 ,通過 *pa = 3 稱為間接訪問。取值運算子也稱為間接運算子。
#include
intmain()
執行結果:
a = g
b = 123
now a = f
now b = 124
sizeof a = 4
sizeof b = 4
the address of a is 0118fa57
the address of b is 0118fa48
例如:
#include
intmain()
定義了乙個整形指標卻沒有初始化。a 卻實是乙個指標,可是我們不知道它指向**。 C語言 基礎指標簡介
所謂指標,就是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。這裡介紹一小部分 首先,介紹聲名指標變數 int p 乙個整形數p int p 乙個指標p int p 50 乙個陣列p,其中的所有資料均為int int p 50 乙個陣列p,其中的資料型別均是指標 這裡 是取位址運算子,...
C 語言簡介
1972年美國貝爾實驗室的 dennis ritchie 在 b 語言的基礎上設計出了一種新的程式語言 c 語言,c 語言是一種通用的,面向過程的程式語言,廣泛用於系統軟體與應用軟體的開發。k r c 1978年,brain kernighan 和 dennis ritchie 出版了 the c ...
C語言簡介
c 語言是一種通用的高階語言,最初是由丹尼斯 里奇在貝爾實驗室為開發 unix 作業系統而設計的。c 語言最開始是於 1972 年在 dec pdp 11 計算機上被首次實現。在 1978 年,布萊恩 柯林漢 brian kernighan 和丹尼斯 里奇 dennis ritchie 製作了 c ...