宣告结构体(struct) - ncnu moodle 课程.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
宣告结构体(struct) - ncnu moodle 课程

從螢幕輸出學生資料與成績 從螢幕輸出學生資料與成績 執行結果 第 8 行, 結構體變數 ss1 的陣列成員, 初始值設定為 ss1.grade [0]=78, ss1.grade [1]=98, ss1.grade [2]=76。 結構體陣列 如果我們把結構體變數宣告成陣列型態, 就可以一次儲存多筆同型別的資料。而此種方式我們稱之為結構體陣列, 宣告語法如下: 使用結構體陣列來儲存資料 使用結構體陣列來儲存資料 使用結構體陣列要設定初始值時, 需依照陣列的元素個數, 依序設定每個元素中每個成員的資料, 如下: 使用結構體陣列來儲存資料 存取資料時, 需以如下方式: 我們可以利用迴圈方式將陣列中每個元素的內容輸出, 如下: 輸出學生資料 輸出學生資料 執行結果 第 8~11 行中, student 結構體陣列的初始值, 會以連續排列的方法來儲存, 如下圖: 使用結構體陣列來儲存資料 接下來再看另一個例子, 假設將上一題的 person 結構體中, 增加了學測成績的陣列, 要計算學生兩次學測的平均。 程式如下: 結構體變數為指位器 以結構體型別宣告變數時, 也可以將該變數宣告成指位器變數, 也就是說結構體變數成了結構體指位器變數。 使用指位器變數來存取結構體成員時, 有兩種方式, 一是使用原來小數點的方式, 但是指位器部分需要加上括號, 另一種是以『成員間接存取算符』(-) 來取代小數點符號, 語法如下: 結構體變數為指位器 兩種方式都可以存取結構體變數中各成員的數值。使用結構體指位器變數時, 同樣須先宣告一個變數空間, 然後再將此變數空間的位址指定給結構體指位器變數。比如說, 以一個員工資料的結構體宣告指位器變數, 就必須先宣告一個員工資料的結構體變數, 如下: 從螢幕輸出員工姓名與編號 從螢幕輸出員工姓名與編號 結構體變數 在函式之間的傳遞 結構體大都宣告在程式的開頭, 其視野是屬於全域性。所以如果在宣告結構體的同時也一齊宣告結構體變數, 那這個結構體變數也會是全域性, 函式之間可以不經過傳遞引數的過程就可以直接存取結構體變數。 傳遞引數的語法 結構體變數的傳值呼叫 (call by value) 結構體變數的傳址呼叫 (call by address) 結構體變數 在函式之間的傳遞 大部分的時候, 我們會將結構體變數宣告在函式區塊中 (如 main ( ) 中), 則該變數的視野是區域性, 如果其他函式想存取此變數, 就必須以引數方式把結構體變數傳遞到函式之中才可以使用。 傳遞引數的語法 要將結構體變數當成引數傳遞到函式中時, 函式原型宣告的引數型別, 可宣告如下: 例如: 傳遞引數的語法 在函式定義處則須寫明接受引數值的結構體變數名稱, 如下: 例如: 在函式中輸出從鍵盤輸入的基本資料 在函式中輸出從鍵盤輸入的基本資料 執行結果 第 10 行, 宣告輸出資料的函式, 並將引數型別宣告成結構體。 結構體變數的傳址呼叫 (call by address) 如果要使用傳址呼叫, 就需要將結構體變數以指位器或陣列的方式來傳遞。 結構體指位器變數的傳址呼叫 結構體陣列的傳址呼叫 結構體指位器變數的 傳址呼叫 我們將個人基本資料的輸入在函式中完成, 然後在 main ( ) 中輸出: 從鍵盤輸入基本資料後 從螢幕輸出 從鍵盤輸入基本資料後 從螢幕輸出 巢狀結構體 結構體的成員如果包含了其他的結構體變數, 我們稱之為巢狀結構體。 使用巢狀結構體時要特別注意一點, 如果結構體 A 為結構體 B 的成員, 則結構體 A 必須宣告在結構體 B 之前。 巢狀結構體 比如說, 我們想在結構體 student 中加入一個結構體 grade 的成員, 我們可以宣告如下: 巢狀結構體 如果想以結構體變數 ss 來存取結構體 grade 中的成員, 我們就必須使用兩次『成員直接存取算符』, 如下: 利用上述 student 與 grade 的巢狀結構體, 宣告結構體變數來存取資料, 程式如下: Question: 混合pointer的寫法? 著作權所有 ? 旗標出版股份有限公司 第 15 章 自定資料型別 - 結構體 (struct) 本章提要 本章簡介 宣告結構體 (struct) 結構體變數的使用與初始值設定 結構體與陣列 結構體變數為指位器 結構體變數在函式之間的傳遞 巢狀結構體 綜合演練 本章簡介 資料型別如 int、char、float 等, 都是用來宣告某種特定類型的資料, 例如宣告為 int 型別的變數, 可存放整數資料;而 char 型別的變數則可用來存放字元。但有時候我們需要建立一種資料型別 (變數), 以同時存有整數、字元、字

文档评论(0)

wujianz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档