一、遇到的問題
在書寫結構體代碼時,由于沒有真正了解結構體的知識導緻書寫代碼老
是出現錯誤。最大的錯誤就是沒有定義結構變量。
出現這種錯誤主要是因為對“結構體”知識點及定義沒有掌握導緻的。
錯誤代碼如下;

二、書寫結構體有兩個步驟;
1、建立結構聲明(建立模闆)
#include <stdio.h>
struct book {
char name[30];
char author[10];
int price;
};
該聲明描述了一個由兩個字元組和一個int類型變量組成的結構,其實該聲明并未建立實際的
資料對象,隻描述了該對象有什麼組成。結構體關鍵字“struct”後面跟的是一個結構,本代碼
下是一個叫做book的結構。(book是可選标記,之後可以使用該标記引用book這個結構)
2、定義結構變量
結構有兩層含義。一層是“結構布局”,另一層是“結構變量”。結構布局隻是告訴編譯器如何
表示資料,但是并未讓編譯器為資料配置設定空間。是以需要建立一個結構變量
struct book b1 {"以幽默的方式過一生","琢磨先生",10 };
編譯器執行完該代碼便建立了一個結構變量b1;之後編譯器通過book結構布局為結構變量“b1”配置設定
空間,之後就将b1這個結構變量與兩個char數組、一個int類型結合在一起
*通路資料的兩種方式
1、用 ”.“操作符時:“結構變量 . 成員”,如”book.name“
2、用 ”->“操作符時: ”結構變量->成員“如”book->name“
( 注意:如果用指針變量儲存結構變量的位址後,想通過”.“操作符找到對應的成員需要對指針變量解
引用(*),如果通過”->“操作符時則不需要解引用。)
三、對之前的錯誤代碼進行修改
#include <stdio.h>
struct book {
char name[30];
char author[10];
int price;
};
int main() {
struct book b1 {"以幽默的方式過一生","琢磨先生",10 };
printf("書名=%s\n",b1.name);
printf("作者=%s\n", b1.author);
printf("價格=%d\n", b1.price);
return 0;
}
運作結果為: