首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網絡編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護士
會計從業(yè)資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質量工程師 | 物業(yè)管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監(jiān)理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現(xiàn)在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > C語言 > 復習資料 > 正文

二級C輔導教程及考點分析:第七章 結構與聯(lián)合

    第七章:結構與聯(lián)合
    結構類型定義和結構變量說明

    在實際問題中,一組數(shù)據(jù)往往具有不同的數(shù)據(jù)類型。例如, 在學生登記表中,姓名應為字符型;學號可為整型或字符型; 年齡應為整型;性別應為字符型;成績可為整型或實型。 顯然不能用一個數(shù)組來存放這一組數(shù)據(jù)。 因為數(shù)組中各元素的類型和長度都必須一致,以便于編譯系統(tǒng)處理。為了解決這個問題,C語言中給出了另一種構造數(shù)據(jù)類型——“結構”。 它相當于其它高級語言中的記錄。

    “結構”是一種構造類型,它是由若干“成員”組成的。 每一個成員可以是一個基本數(shù)據(jù)類型或者又是一個構造類型。 結構既是一種“構造”而成的數(shù)據(jù)類型, 那么在說明和使用之前必須先定義它,也就是構造它。如同在說明和調用函數(shù)之前要先定義函數(shù)一樣。

    一、結構的定義

    定義一個結構的一般形式為: 
    struct 結構名 
    { 
    成員表列 
    };
    成員表由若干個成員組成, 每個成員都是該結構的一個組成部分。對每個成員也必須作類型說明,其形式為:
    類型說明符 成員名; 
    成員名的命名應符合標識符的書寫規(guī)定。例如: 
    struct stu
    {
    int num;
    char name[20];
    char sex;
    float score;
    }; 
    在這個結構定義中,結構名為stu,該結構由4個成員組成。 第一個成員為num,整型變量;第二個成員為name,字符數(shù)組;第三個成員為sex,字符變量;第四個成員為score,實型變量。 應注意在括號后的分號是不可少的。結構定義之后,即可進行變量說明。 凡說明為結構stu的變量都由上述4個成員組成。由此可見, 結構是一種復雜的數(shù)據(jù)類型,是數(shù)目固定,類型不同的若干有序變量的集合。

    二、結構類型變量的說明

    說明結構變量有以下三種方法。以上面定義的stu為例來加以說明。
    1. 先定義結構,再說明結構變量。如: 
    struct stu
    {
    int num;
    char name[20];
    char sex;
    float score;
    };
    struct stu boy1,boy2;
    說明了兩個變量boy1和boy2為stu結構類型。也可以用宏定義使一個符號常量來表示一個結構類型,例如: 
    #define STU struct stu
    STU
    {
    int num;
    char name[20];
    char sex;
    float score;
    };
    STU boy1,boy2;

    2. 在定義結構類型的同時說明結構變量。例如: 
    struct stu
    {
    int num;
    char name[20];
    char sex;
    float score;
    }boy1,boy2;

    3. 直接說明結構變量。例如: 
    struct
    {
    int num;
    char name[20];
    char sex;
    float score;
    }boy1,boy2; 

    第三種方法與第二種方法的區(qū)別在于第三種方法中省去了結構名,而直接給出結構變量。三種方法中說明的boy1,boy2變量都具有圖7.1所示的結構。說明了boy1,boy2變量為stu類型后,即可向這兩個變量中的各個成員賦值。在上述stu結構定義中,所有的成員都是基本數(shù)據(jù)類型或數(shù)組類型。成員也可以又是一個結構, 即構成了嵌套的結構。例如,圖7.2給出了另一個數(shù)據(jù)結構。 按圖7.2可給出以下結構定義: 
    struct date{
    int month;
    int day;
    int year;
    }
    struct{
    int num;
    char name[20];
    char sex;
    struct date birthday;
    float score;
    }boy1,boy2;
    首先定義一個結構date,由month(月)、day(日)、year(年) 三個成員組成。 在定義并說明變量 boy1 和 boy2 時, 其中的成員birthday被說明為data結構類型。成員名可與程序中其它變量同名,互不干擾。結構變量成員的表示方法在程序中使用結構變量時, 往往不把它作為一個整體來使用。

    在ANSI C中除了允許具有相同類型的結構變量相互賦值以外, 一般對結構變量的使用,包括賦值、輸入、輸出、 運算等都是通過結構變量的成員來實現(xiàn)的。

    表示結構變量成員的一般形式是: 結構變量名.成員名 例如:boy1.num 即第一個人的學號 boy2.sex 即第二個人的性別 如果成員本身又是一個結構則必須逐級找到最低級的成員才能使用。例如:boy1.birthday.month 即第一個人出生的月份成員可以在程序中單獨使用,與普通變量完全相同。

希望與更多計算機等級考試的網友交流,請進入計算機等級考試論壇

更多信息請訪問:考試吧計算機等級考試欄目

1 2 3 4 下一頁
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。