官术网_书友最值得收藏!

1.8 信息攜帶者:定義一個結構體

在程序設計中,經常需要將多個數據項組合在一起作為一個數據元素。例如,一個學生的信息包括姓名、學號、性別、年齡、分數等。此時可以將學生的信息定義為結構體類型。

訓練1-35:輸入一個學生的信息(包括姓名、學號、性別、年齡、分數)并輸出。

有時為了方便,會使用typedef給結構體起一個別名(小名):

使用typedef有什么用處?typedef是C、C++語言的關鍵字,用于給原有數據類型起一個別名。

語法規則如下:

其中,“類型名稱”為已知數據類型,包括基本數據類型(如int、float等)和用戶自定義的數據類型(如用struct自定義的結構體);“類型標識符”是為原有數據類型起的別名,需要滿足標識符命名規則。就像給某個人起一個小名或綽號一樣,《三國演義》中李逵的綽號是“黑旋風”,大家聽到“黑旋風”就知道是李逵。

使用typedef的好處如下。

(1)簡化比較復雜的類型聲明。給復雜的結構體類型起一個別名,這樣就可以使用這個別名等價該結構體類型,在聲明該類型變量時就方便多了。

(2)提高程序的可移植性。例如,在程序中使用這樣的語句:

在程序中就可以直接定義:

在程序中,假如有n個地方用到了ElemType類型,比如現在處理的數據變為字符類型了,就可以將上面類型定義中的int直接改為char:

這樣只需修改類型定義,無須改動程序中的代碼。如果不使用typedef類型定義,就需要把程序中n個用到int類型的地方,全部改為char類型。如果忘記修改某處,就會發生錯誤。

使用ElemType是為了讓算法的通用性更好,因為很多時候結構體定義并不指定處理的數據是什么類型,不能簡單地將其寫成某種類型。將ElemType結合typedef使用,可以提高算法的通用性和可移植性。

主站蜘蛛池模板: 五台县| 新野县| 宜昌市| 鹿邑县| 墨玉县| 壶关县| 门头沟区| 汾阳市| 尼勒克县| 山西省| 德格县| 涪陵区| 东丽区| 中江县| 葵青区| 兴安县| 白河县| 隆安县| 泰来县| 林芝县| 常山县| 福泉市| 玛沁县| 上虞市| 原阳县| 特克斯县| 泗水县| 瓮安县| 子洲县| 保定市| 霍州市| 焉耆| 孟津县| 手机| 油尖旺区| 错那县| 冷水江市| 个旧市| 南乐县| 麻阳| 博白县|