C語言程式概述(六)

2021-07-24 09:30:04 字數 2172 閱讀 3759

c程式第11章:結構體與共用體

一、結構體型別和結構體變數

1、結構體型別宣告

結構體——是使用者根據自己的需要定義的一種構造型別資料 。

結構體由若干不同型別的資料項組成,構成結構體的各個資料項稱為結構體成員。

(1)「student」為結構體名:使用者定義的合法識別符號。可省:無名結構體。(2)struct是關鍵字,不能省略(3)中是組成該結構體的成員。成員型別可以是基本型或構造型(4)末尾分號不能省

注意:宣告結構體型別struct student並沒有為分配空間。結構體型別宣告只是定義了一種新的型別,類似int等型別。它是對結構的組織形式的描述,系統還沒分配實際記憶體空間。

只有定義結構體型別的變數,系統才分配記憶體空間。

2、結構體變數定義

有了型別後,就可以定義變數。三種形式:

(1)先定義(宣告)結構體型別再定義變數名

(2)定義結構體型別的同時定義結構體變數

(3)直接定義結構體變數(即不出現結構體名)

3、結構體變數需要的記憶體——等於結構體變數所有成員佔記憶體之和

注意:

宣告結構體型別與宣告結構體變數概念不同。結構體型別:不分配記憶體; 結構體變數:分配記憶體結構體型別:不能賦值、訪問、運算; 結構體變數:可賦值、訪問、運算

4、結構體變數初始化——就是為成員賦初值。根據前面結構體變數定義形式的三種情況,

初始化的形式也有三種。

形式一:

形式二:

形式三:

6、結構體變數使用

(1)引用規則:一般情況下結構體變數不能整體引用,只能引用變數成員

引用方式: 結構體變數名.成員名

注意:結構體中的成員(即「域」),可以單獨使用,它的作用與地位相當於普通變數。成員名可以與程式中的變數名相同,二者不代表同一物件。

7、結構體型別的巢狀——結構體成員本身又是乙個結構體型別。

結構體巢狀時逐級引用(只能對最低階的成員進行賦值或訪問以及運算)

二、結構體陣列

1、定義結構體陣列:

每個陣列元素都是乙個結構體型別的資料,它們都分別包括各個成員項。也有兩種方法:

(1)定義結構體型別後定義陣列

(2)定義結構體型別時定義陣列

2、結構體陣列的初始化

結構陣列[n]=,,…,};

3、 結構體陣列元素的使用

結構體陣列元素類似於乙個結構體變數,只能對結構體陣列元素的成員進行輸入、輸出或其它基本操作

三、用指標訪問結構體

1、 指向結構體變數的指標

設乙個指標變數,用來指向乙個結構體變數,此時該指標變數值是結構體變數的起始位址。

注意:三者等價:(*結構體指標名). 成員名=結構體變數名.成員名=結構體指標名->成員名

2、 用結構體變數和指向結構體的指標作函式引數

將乙個結構體變數的值傳遞給另乙個函式,有3個方法:

(1)用結構體變數的成員作引數。

(2) 用結構體變數作實參。

(3) 用指向結構體變數(或陣列元素)的指標作實參,將結構體變數(或陣列元素)的位址傳給形參。

四、鍊錶概述——鍊錶是將若干個資料項按一定的原則連線起來的表。

連線原則:(1)前乙個結點指向下乙個結點;(2)只有通過前乙個結點才能找到下乙個結點。此為單向鍊錶特徵,下均指單向鍊錶。

C語言概述

c語言歷史 1970年 unix的研製者丹尼斯 里奇 dennis ritchie 和肯 湯普遜 ken thompson 研製出b語言 bcpl語言 19世紀70年代末丹尼斯 里奇第一次把b語言改為c語言 1983年美國國家標準委員會 ansi 對c語言進行標準化,頒布了第乙個c語言草案 83an...

C語言概述

c語言概述 從乙個簡單的例項開始 math.h stdio.h main 源程式的結構特點 1.乙個 語言源程式可以由乙個或多個原始檔組成。2.每個原始檔可由乙個或多個函式組成。3.乙個源程式不論由多少個檔案組成,都有乙個且只能有乙個main函式,即主函式。4.源程式中可以有預處理命令 includ...

c 語言概述

c 語言是目前世界上最流行和應用最廣的一種計算機高階程式語言。他從早期的c語言發展演化而來,c 對c語言不是簡單的擴充,而是從面向過程的語言發展為既面向過程又物件導向的語言,以適應軟體開發技術從面向過程轉向物件導向的客觀發展的需要。c 語言是對c語言的繼承,豐富和發展,既適合開發面向過程的程式,又適...