C語言知識第8章1 王厚財

2022-08-19 15:09:02 字數 1954 閱讀 9147

複習:1. 數值型陣列與字元型陣列的定義

2. 數值型陣列的賦初值與字元型陣列的賦初值以及字串的賦值

3. 對於數值型陣列的操作

4. 對於字串的操作及函式

5. 排序

講授新課:

指標是c語言中廣泛使用的一種資料型別。

計算機的記憶體是以位元組為單位的一片連續的儲存空間,每乙個位元組都有乙個確定的編號,這個編號就是記憶體位址。

見圖8.1所示,記憶體的編號從0開始,連續進行編號。在實際處理中,位址通常採用十六進製制數形式。

在c程式中定義了乙個變數,c編譯系統就會根據定義中變數的型別,為其分配一定位元組數的記憶體空間,所分配儲存空間的首位址稱為此變數的位址。所分配儲存空間中的資料就是這個變數的值,也就是儲存單元的內容。

一般情況下,我們在c程式中只需指出變數名就可以對變數進行訪問操作,實際上也是對某個位址的儲存單元進行操作。這種直接按變數的位址訪問變數值的方式稱為「直接訪問」方式。

與「直接訪問」方式相對應的是「間接訪問」方式。在c語言中,我們通過定義一種特殊的變數(即指標變數,一會我們將詳細敘述;同時,為了敘述方便,我們將前面章節中定義的變數稱為普通變數。)用於存放記憶體單元的位址,然後根據這種特殊的變數的內容(裡面存放的是位址值)去訪問相應的儲存單元。

這種方式稱為「間接訪問」方式。

「---」只是一種示意,形似「指標」。用來存放位址值的變數稱為指標變數, 「變數p指向了變數a」的含義是指標變數p中存放了變數a的位址。

如果乙個變數中存放是位址值,那麼稱這個變數為指標變數。常把指標變數簡稱為指標。定義指標的目的是為了通過指標去訪問記憶體單元。

c語言規定所有變數在使用前必須定義,指定其型別,並按此分配記憶體單元。指標變數不同於普通變數,它是專門用來存放位址的。

定義指標變數的一般形式為:

型別說明符 *指標變數名;

應該注意的是:雖然pa,pb和px三個指標變數分別指向不同型別的變數,但是pa,pb和px這三個變數本身在記憶體中所佔的位元組數是一樣的。

既然指標變數都是用來存放位址值的,乙個指標變數中存放的是乙個儲存單元的位址值。而乙個儲存單元可能包括多個位元組(整型2個位元組,長整型4個位元組,雙精度型8個位元組等),這多個位元組的首位址作為整個儲存單元的位址。

我們還要講到指標的移動,也就是要對位址進行增減運算,此時指標移動的最小單位是乙個儲存單元而不是乙個位元組。因此,對於基型別不同的指標變數,其增1、減1的位元組數也是不一樣的。所以指標變數必須區分基型別。

指標變數同普通變數一樣,也要在記憶體中分配儲存單元,這個儲存單元也要有位址值,我們可以定義乙個指標變數來存放此位址值,這個指標變數就稱為指向指標的指標變數。

指標變數同普通變數一樣,使用之前不僅要定義說明, 而且必須賦予具體的值。指標變數的賦值只能賦予位址

乙個指標變數可以有多種賦值方法:

c語言中提供了位址運算子&來求乙個記憶體單元的位址,&是乙個單目運算子,我們可以利用求位址運算把乙個變數的位址賦給指標變數。

求位址運算子&是用於求記憶體單元的位址,求位址運算子&應該放在變數的左邊。

我們可以把乙個指標變數的值賦予基型別相同的另乙個指標變數,使這兩個指標變數指向同一位址。

注意:當指標變數間賦值時,應保證賦值號兩邊的指標變數的基型別相同。

定義乙個指標變數後,若沒有初始化或賦值,它的值是不確定的。注意:不能說該指標變數沒有值,如果使用沒有初始化或賦值的指標變數,可能產生不可預料的結果。

為避免這種問題,可以給指標變數賦「空值」。

p=null;

null是在標頭檔案中有定義的預定義符,因此在使用null時,應該在程式的前面出現預定義命令列:#include 「 null的**值為0,所以,以上語句等價於:

p=』\0』; p=0;

指標變數裡面存放的是位址值,只要是位址值,我們都可以賦給指標變數。這包括後面將要學到的動態分配函式得到的位址值、陣列的位址、函式的位址等等。

小結:1. 指標的定義

2. 指標的意義及基型別

3. 指向指標的指標

4. 指標的賦值

作業:課後習題

C語言知識第4章3王厚財

1 if語句構成的選擇結構 2 if語句的巢狀構成的多分支的選擇結構 3 switch語句構成的多分支的選擇結構 4 break語句的使用 5 條件運算子 迴圈是指在一定條件下一組語句的重複執行。在c語言中,可以用下面的方法來實現迴圈結構 1.while語句構成的迴圈結構 2.do while語句構...

第1章C語言概述

新疆農業大學 語言程式設計課程教案 一 教學目的和要求 了解c語言產生的歷史背景,c語言的特點及發展過程,c語言程式的組成,turbo c環境的基本操作執行乙個c程式的方法。二 講授內容提要 第1章c語言概述 1.1 c語言產生的歷史背景 1.2 c語言的特點 1.3 c程式的基本組成 1.4 如何...

第1章C語言概述與演算法描述

1.c程式的基本組成單位是函式。2.c語言本生沒有輸入輸出語句。3.結構化程式有順序結構 選擇結構 迴圈結構三種基本結構組成。5.在c語言中,乙個變數代表記憶體中乙個儲存單元。7.1 演算法的特性 有窮性 包含有限的操作步驟。確定性 演算法中的每乙個步驟都應當是確定的。有零個或多個輸入 輸入是指在執...