依照
C最強入門邁向頂尖高手之路王者歸來
頁數13-2
struct 結構名稱
{
資料型態 資料名稱1;成員1
...
資料型態 資料名稱n;成員n
}變數名稱1,變數名稱2...;
結構變數名稱.成員名稱;
頁數13-10範例
struct score
{
int sc;
char grade;
};注意這裡沒有設struct score的變數
struct student
{
char name[12];
struct score math;這裡有設定struct score的變數math,struct score相當於class score類別型態,所以score是結構型態,用結構或類別型態宣告的變數就是物件,math是變數。
}stu;
由於struct score math被設定在struct student裡,所以是struct student的成員,又math是struct score的變數可以存取struct score的成員,因此用結構變數名稱.成員名稱就變成,stu.math.sc=92;
stu.math.grade='A';
頁數13-11範例
struct score
{
int sc;
char grade;
};
struct student
{
char name[12];
struct score math;
}stu={"洪錦魁",{92,'A'}};
在這裡把變數stu用{"洪錦魁",{92,'A'}}設定內容也就是初始化
變數stu初始化就代表結構成員的初始化
由【上到下】對應由【左到右】
因此
char name[12]對應"洪錦魁"
struct score math對應{92,'A'}也代表變數math初始化,代表結構成員的初始化。
因此
struct score的結構成員sc對應92
struct score的結構成員grade對應'A'
頁數14-13~14-14範例
typedef A B的意思是把A定義成B
typedef struct Books
{
char title[20];
char author[20];
int price;
}BOOK;
的意思則不是說BOOK是struct Books的變數
BOOK等同於struct Books是一種結構型態,也可以說把struct Books用BOOK來表示。
由上述【用結構或類別型態宣告的變數就是物件】
因此範例就寫
int main()
{
BOOK book={"C語言王者歸來","洪錦魁","620"}
}
既然BOOK等同於struct Books、把struct Books用BOOK來表示
因此用BOOK型態宣告的book等於用struct Books宣告的變數
變數book初始化,代表結構成員的初始化。
由【上到下】對應由【左到右】
因此
"C語言王者歸來"對應title[20]
"洪錦魁"對應author[20]
"620"對應price