首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
7.1 結構型和結構變量
1.結構型
結構型是由若干獨立意義成員組成的復雜數據。定義一個結構型的一般形式為
struct 結構型名{
數據類型1 成員1名;
數據類型2 成員2名;
……
數據類型n 成員n名;
};
其中關鍵字“struct”引出結構型的定義。用花括號括住結構型的成員說明表,指明組成此結構型全部成員的數據類型和名稱。結構型的成員也稱為域。如某個系統的學生數據實體用如下結構型來描述:
struct stdType {
int num;/*學號*/
char * name;/*姓名,允許姓名字符串長度可變,按需要申請*/
char sex;/*性別‘M' 表示男生,'F’表示女生*/
int age;/*年齡*/
int score;/*成績*/
char *addr; /*家庭地址,允許地址字符串長度可變,按需要申請*/
} ;
上例定義結構型struct stdType,有六個成員。實際上,凡是相關的若干數據對象都可組合成一個結構,在一個結構名下進行管理。
結構成員的數據類型可以是任何類型,包括前面定義的其它結構型,但是結構不能包含自身,而允許結構中可有這樣的指針成員,指向如同定義一樣的結構。
2.結構變量
結構型的變量就是結構變量,程序要使用結構數據,需定義結構變量。結構變量也簡稱結構。定義結構變量有以下幾種不同的方法。
(1)先定義結構型,再定義結構變量。如利用前面已定義的結構型struct stdType,以下代碼
struct stdType st1,st2,stdArray[200]
定義結構變量st1、st2和結構數組stdArray。
(2) 在定義結構型時,同時定義結構變量。如代碼
struct point {/*某繪圖程序的坐標類型*/
int x;
int y;
} p1,p2;
定義struct point型變量 p1、p2。
(3) 在定義無名結構型時,同時定義結構變量。如某種形式的結構型只是一次性定義幾個變量,可以省略結構型名,直接定義結構變量。如由日、月、年組成的日期結構變量為:
struct
int day; /*日*/
int month;/*月*/
int year;/*年*/
} date1,date2;/*定義兩個日期變量datel和date2*/
3.結構變量初始化
在定義結構變量時,可同時給它置初值,稱為結構變量初始化。結構變量初始化時,要按其結構型定義中的成員順序逐一給出各成員的初值。如
struct point2 /* 說明繪圖程序的坐標類型*/
int x;
int y;
} p3={ 20,50};
結構變量初始化時,對初值表達式的要求與數組初始化對初值表達式的要求相同。
4.結構變量的引用
結構變量定義后,就可以用結構變量的名引用結構。 ANSI C還允許相同類型的結構變量相互賦值。
5.結構變量成員的引用
引用結構變量成員的標記形式為:
結構變量名.成員名
其中“.” 稱為成員運算符。例如,datel.year引用結構變量datel的year成員。因該成員的類型為int型的,可以對它施行任何int型變量可施行的運算。例如,賦值運算datel.year=2000。如結構變量的某成員又是結構,要引用其成員的成員,則繼續用成員運算符‘.’接上更內居的成員名。如結構變量的某成員是數組,要引用其成員的元素,則繼續用數組元素的下標引用結構成員的元素。
結構有多個成員,通常結構成員順序地被安排在結構變量的內存決中,結構變量的地址是結構所占內存的開始地址,寫成
& 結構變量
而結構成員的地址寫成
& 結構變量.成員名
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |