指標(初學者)

2022-04-01 06:39:26 字數 1285 閱讀 9771

1、位址和指標的概念

(1)位址

記憶體區的每乙個位元組都有乙個編號,這就是「位址」。如果在程式中定義了乙個變數,在對程式進行編譯時,系統就會給這個變數分配記憶體單元。

在c語言中,對變數的訪問有兩種方式:直接訪問和間接訪問。

直接訪問:如:a=5;

間接訪問:如:scanf("%d",&a);

呼叫函式時,把變數a的位址傳遞給函式scanf,函式先把該位址儲存到乙個單元中,然後把從鍵盤接收的資料通過所儲存的位址儲存到a變數中。

(2)指標

2、操作符

*:取值操作符。

&:取值操作符。

如:int i=2000;

int *pointer;   /*此處的*並非取值,只是表示乙個特徵*/

pointer = &i;

printf("%d\n",*pointer);  /*此處取值*/

3、指標與指標變數

知道了乙個變數的位址,就可以通過這個位址來訪問這個變數,因此,又把變數的位址稱為變數的「指標」。

c語言可以定義一類特殊的變數,這些變數專門用來存放變數的位址,稱為指標變數。

指標變數的值(即指標變數中存放的值)是位址(即指標)。注意區分「指標」與"指標變數"這兩個概念。

(1)定義乙個指標變數「*」。

例:float*pointer_3;  /*pointer_3是指向float型變數的指標變數*/

char*pointer;     /*pointer_4是指向字元型變數的指標變數*/

可以用賦值語句使乙個指標變數得到另乙個變數的位址,從而使它指向乙個該變數。

注:a、指標變數前的「*",表示該變數的型別為指標型變數,其一般形式為:型別說明符 *變數名;

其中,*表示這是乙個指標變數,變數名即為定義的指標變數名,型別說明符表示本指標變數所指向的變數的資料型別。

例:float*pointer_1;

指標變數名是pointer_1,而不是*pointer_1。

b、在定義指標變數時必須指定基型別。值得注意的是·,只有整型變數的位址才能放到指向整型變數的指標變數中。

(2)指標變數的引用」&「。

指標變數中只能存放位址(指標),不要將乙個整數(或任何其他非位址型別的資料)賦給乙個指標變數,否則,編譯器也會把該值當成乙個位址來處理。

c語言中提供了位址運算子&來表示變數的位址。

其一般形式為:&變數名;

注:變數本身必須預先宣告。

例:通過指標變數訪問針型變數

#includevoid

main()

初學者談初學者學html

這是乙個段落。解釋一下就是 html 與 html 之間的文字是描述網頁。head 與 head 之間的文字是文件的元資料。title 與 之間的文字是文件的標題。body 與 body 之間的文字是可見的頁面內容,是文章的主體部分。h1 與 h1 之間的文字被顯示為乙個大標題。p 與 p 之間的文...

初學者理解C語言指標

1.指標定義 指標是由能存放乙個位址的一組儲存單元 通常是兩個或四個位元組 構成。c語言程式設計 指標是乙個值為記憶體位址的變數 或資料物件 正如char型別變數的值是字元,指標變數的值是位址。c primer plus 感覺第二種更容易理解,指標是變數 和char int類似。3.間接定址 間接引...

陣列與指標 初學者視角

先通過一組例項來了解一下,會更加形象。includeusing namespace std int main for int i 0 i 5 i cout a a n cout a 輸出結果為 a 0 的位址為 0x70fdf0 a 1 的位址為 0x70fdf4 a 2 的位址為 0x70fdf8...