- 算法訓練營:海量圖解+競賽刷題(入門篇)
- 陳小玉
- 659字
- 2021-07-23 18:16:30
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使用,可以提高算法的通用性和可移植性。
推薦閱讀
- 大學計算機基礎(第三版)
- Flask Blueprints
- Instant Apache Stanbol
- 數據庫系統原理及MySQL應用教程
- YARN Essentials
- Amazon S3 Cookbook
- Mastering RStudio:Develop,Communicate,and Collaborate with R
- The DevOps 2.5 Toolkit
- Python Data Analysis Cookbook
- RabbitMQ Essentials
- Learning OpenStack Networking(Neutron)(Second Edition)
- IBM Cognos Business Intelligence 10.1 Dashboarding cookbook
- Rust游戲開發實戰
- Building Serverless Architectures
- Extending Unity with Editor Scripting