q:結構體的作用及其優勢。
a:struct將相關聯的資料打包成乙個整體,方便使用,我們將多種資料組合起來的整體稱為結構體。結構體可以很好的將需要傳送的內容儲存在乙個整體中,同時結構體也可以壓縮函式引數個數。
q:結構體和陣列的比較。
a:同:都由多個元素組成;各元素在記憶體中的儲存空間是連續的;異:陣列中各元素德邦資料型別相同,結構體內可以不同。
q:結構體定義及使用。
a:一般形式:
struct 結構體名;例:
struct student ;
定義結構體型別的變數、指標變數和陣列。
方法一:定義結構體型別時,同時定義該型別的變數。
struct [tudent]
;stu1,*ps,stu[5];
方法二:先定義結構體型別,再定義該型別的變數。
struct student
;struct student stu1,*ps,stu[5];
方法三:用型別定義符typedef先給結構體型別命別名,再用別名定義變數。
typedef struct [tudent]
stu;
stu stu1,*ps,stu[5];
為結構體變數賦初值:
struct [tudent]
;stu[2]=,};
q:#define和
typedef
的區別。
a:typedef是為了增加可讀性二為識別符號另起的新名稱,而
#define在c
中只是為了定義常量。
在定義關鍵字,亢長的型別的別名時用typedef。巨集定義是簡單的字串代換,而
typedef
定義的新名稱具有一定的封裝性。
q:結合體和聯合體的區別。
a:struct和
union
都是由多個不同的資料型別成員組成的,
union
中只能存放乙個被選中的成員,
struct
中的所有成員都在。
預處理,結構體
q 巨集定義的定義和型別。a 巨集定義是由源程式中的巨集定義命令完成的,巨集代換是由預處理程式自動完成的,在 c語言中,巨集定義分為有參和無參兩種。無參巨集巨集名後不帶引數,其定義的一般形式為 define 識別符號 字串 帶參巨集的引數為形參,其一般形式為 define 巨集名 形參表 字串。q ...
linux c學習 預處理和結構體
c語言提供多種預處理功能,主要處理 開始的預編譯指令,如巨集定義 define 檔案包含 include 條件編譯 ifdef 等 以 開頭的都是預處理命令 條件編譯是c語言中預處理部分的內容,它是編譯器編 時最先處理的部分,條件編譯裡面有判斷語句,如 if,else,endif。它的意思是如果巨集...
預處理與結構體
巨集定義 檔案包含 條件編譯1 巨集定義不是說明或語句,不需要在結尾加上分號 2 巨集定義必須寫在函式之外,其作用域是巨集定義命令起到源程式結束,如需要終止可使用 undef命令 3 預處理程式不對巨集定義做任何檢查,如有錯誤,只能在編譯被巨集定義展開後的源程式時發現1 巨集會在編譯器在對源 進行編...