C語言中指標的考點

2021-03-04 01:34:28 字數 1514 閱讀 7394

考點一變數的位址和指標

1、位址和指標的定義

(1)記憶體位址: 計算機的記憶體是以位元組為單位的一片連續的儲存空間,每個位元組都有乙個編號,這個編號就稱為記憶體位址。一般情況下,在程式中只需指出變數名,無須知道每個變數在記憶體中的具體位址。

程式中對變數驚喜訪問操作,實際上也就是對某個位址的儲存單元進行操作。

(2)指標變數: 在c語言中,可以定義一種特殊的變數,這種變數知識用來存放記憶體位址的,這種用來存放位址的變數叫做指標變數。例如:

將變數a的記憶體位址儲存在變數d中,這時訪問變數啊,可以先找到存放位址的d,從中讀出a的位址再去訪問a。

2、指標變數的定義和指標變數的基型別

(1)指標變數的定義: 格式型別名 *指標變數名1,指標變數名2……;

例如: int*p1,*p2;

(2)指標變數的基本型別:乙個指標變數中存放的是乙個儲存單元的位址,對於基型別不同的指標變數,其內容增1、減1所跨越的位元組數是不同的,因此在定義指標變數時必須區分基型別。

考點二指標變數的操作

1、給指標變數賦位址值

(1)通過求址運算子「&」獲得位址值例如: int k=1,*p;*p=&k;注意(求址運算子「&」只能用於變數和陣列元素,不可用於表示式、常量或被說明為register的變數,&必須放在運算物件的左邊,而且運算物件的型別必須與指標變數的基型別相同)。

(2)可以通過賦值運算,把乙個指標變數中的位址賦給另乙個指標變數,當進行賦值運算時,兩邊的指標變數的型別必須相同。

(3)通過標準函式獲得位址值 :可以通過呼叫庫函式malloc和calloc在記憶體中開闢動態儲存單元,並把所開闢的動態儲存單元的位址賦給指標變數。

2、給指標變數賦空值

null是在stdio.h標頭檔案中定義的預定義符。null的**值為0,可以給指標變數賦null值,例如:

p=null;此時p為空指標。它等價於:p=』\0』;或p=0;這時,指標p並不是指向位址為0的儲存單元,而是有乙個確定的值 「空」。

3、對指標變數的操作

(1)通過指標來引用乙個儲存單元: c語言提供了乙個間接訪問運算子 *,又稱為間址運算子,它是乙個單目運算子。當指標變數中存放了乙個確切的位址值時,就可以用間址運算子通過指標來引用該位址的儲存單元。

(2)移動指標:是指對指標變數加上活減去乙個整數或通過賦值運算使指標變數指向相鄰的儲存單元,因此,只有當指標指向一串連續的儲存單元時,指標的移動才有意義。當指標指向一串連續的儲存單元時,可以對指標變數進行加上或減去乙個整數的運算,也可以對指向同一串連續儲存單元的兩個指標進行相減的運算。

例如:main()

在程式的最後乙個迴圈語句中,用指標變數p指向陣列a,每執行一次for迴圈,都使指標變數p指向下乙個陣列元素,再通過*p輸出陣列中的每乙個元素。(因為a是乙個陣列名,它是乙個常量(位址),所以它不能自加,於是將a賦給指標變數p,p作為乙個變數才可以自加)

(3)指標的比較:在關係表示式中可以對兩個指標進行比較,通常兩個或多個指標指向同一陣列(如一串連續的儲存單元)時,指向前面元素的指標變數小於指向後面元素的指標變數。如果定義乙個函式的型別為指標型別,那麼函式最後將返回乙個位址值。

C語言中指標的運算詳解

在c語言中,指標和陣列名通常都可以混用。例如char p 訪問時,p跟p 0 是一樣的,p 1 跟p 1 是一樣的。對於陣列 char b 5 訪問時,b 0 跟 b是一樣的,b 2 跟 b 2 是一樣的。在一般的通訊中 例如串列埠 通常都使用位元組傳輸。而像float,long int之類的,有4...

關於C語言中的變數

include void f5 int static int e void f4 int a void main void f4 int int e void f5 int b 首先,main函式中以10為引數呼叫函式f5,在函式f5中,給變數e賦值為5,接下來呼叫函式f4,引數b的值為10,在函式...

C語言中申明解析方法的總結

2011 11 04 00 00位元網悠虎 關鍵字 c語言 c語言中的宣告是乙個比較令人頭痛的問題,尤其一些複雜的宣告看起來甚至會令人感到恐怖,如果您是一位初學者,您一定會對下面這幾個式子感到畏懼。因為對於剛接觸這種形式的人來說,這簡直太複雜了,當然前提是假定您未掌握分析這方面的專業知識。第乙個宣告...