C 學習筆記 八 c 中結構體的使用

2021-09-30 20:03:51 字數 2213 閱讀 9260

本文主要是譚浩強老師c++教材第三版第七章的小結。

定義結構體的目的是反映資料之間的內在聯絡。

宣告結構體的一般形式為:

struct 結構體型別名

其中,成員表由每個成員的型別名+成員名構成。

定義結構體有以下三種方法:

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

如:

struct student

;student student1,student2;

(2)在宣告型別的同時定義變數

struct student

student1,student2;

實際應用中,較為提倡第一種方法,因為將宣告和定義分開便於使不同的函式甚至檔案可以使用相同的結構體,適用於大規模程式設計。

結構體變數的初始化:

對於上述兩種定義形式,均可在其後增加初始化,給變數賦予初始值。

(1)可以將乙個結構體變數的值賦給另乙個具有相同結構的結構體變數,如:

student1 = student2;

(2)可以引用結構體變數中乙個成員的值,一般形式為:

結構體變數名.成員名

如:student.num

結構體陣列是每個陣列元素都是乙個結構體的陣列,也就是說是一組結構體。

如:

struct person

;int main()

;//定義了型別為person的陣列,每個元素都是乙個姓名+得票數的結構體

}

(1)通過指向結構體變數的指標引用結構體變數中的成員

struct student

;int main()

p->num與(*p).num等價

(2)用結構體變數和指向結構體變數的指標構成鍊錶

詳情見習題6-10:

(1)結構體變數名作函式引數

struct student

;int main()

void print(student stu)

(2)用指向結構體變數的指標作函式引數

struct student

;int main()

void print(student *p)

new和delete是運算子,不是函式,因此執行效率高。

new的使用格式為:

new 型別[初值]

float *p = new float(3.14);//開闢乙個存放浮點數的空間,指定初值為3.14,並返回該空間的位址賦給p;

delete的使用格式:

對變數:delete 指標變數

對陣列:delete 指標變數

如:要撤銷上面存放單精度浮點數的空間p:

delete p;

如果乙個變數只能有幾種可能的值,則可以定義為列舉型別,即將變數的值一一列出來,變數的值只能在列舉出來的範圍內

宣告列舉型別的一般形式為:

enum 列舉型別名 ;

如:enum weekday ;

定義列舉型別:weekday workday;

將列舉元素賦給其他元素:w = workday(2);//執行結果w = tue

注意的是列舉元素是常量而不是變數。

可以用typedef宣告新的型別名代替已有的型別名,

格式:typedef 原型別名 新型別名

如:typedef int integer; //用integer代替int;

由此,以下兩行等價:

int i,j;

integer i,j;

也可以用於代表指定結構體,如:

typedef struct

date;

//用date代表該結構體,以下可以直接定義不同型別的該結構體

date birthday;

date *p;

C學習筆記 結構體

結構體是簡單資料型別的綜合 struct man struct man m struct man m 要訪問結構體成員,要使用.操作符。m.age 結構在記憶體的大小是和結構成員最長的那個元素相關的 編譯器在編譯乙個結構的時候採用記憶體對齊模式 struct man sizeof struct ma...

C語言學習八結構體

為什麼需要結構體,看 include struct student 定義乙個學生型別,裡面有age,score,然後可以定義這個型別的變數 int main void int age float score char int age2 float score2 char 2 return 0 定義結...

c語言 結構體學習筆記

一般形式 struct 結構體名 示例struct student 注意最後的分號2.1.先宣告結構體型別,再定義該型別的變數示例 struct student student1,student2 2.2.在宣告型別的同時定義變數 一般形式 struct 結構體名變數名表列 示例struct stu...