定義結構體的同時聲明變量
#include
struct book
{
int id;
char name[20];
char type[20];
}book1; // 在這里直接聲明變量
int main()
{
scanf("%d %s %s",&book1.id,&book1.name,&book1.type);
printf("編號:%d 名稱:%s 類型:%s",book1.id,book1.name,book1.type);
return 0;
}
輸入:
1 西游記 四大名著
輸出結果:
編號:1 名稱:西游記 類型:四大名著
- 在定義結構體的同時,我們在結構體末尾的 } 處直接聲明所需變量,相比起在主函數內再用struct book book1; 來聲明變量要方便快捷的多。
- 注意變量名后要以分號結尾。
使用typedef,讓結構體的使用更方便
#include
typedef struct book
{
int id;
char name[20];
char type[20];
}book;
int main()
{
book book1;
scanf("%d %s %s",&book1.id,&book1.name,&book1.type);
printf("編號:%d 名稱:%s 類型:%s",book1.id,book1.name,book1.type);
return 0;
}
- 在不使用typedef的情況下,我們使用結構體來聲明變量時需要加上struct,如:struct book book1。
- 并且在有些情況下結構體的名字很長,當我們需要聲明變量時,就會讓代碼看起來繁瑣。
- 這個時候,使用typedef為這個結構體定義一個使用它時的名字,我們就可以像使用 int 之類的變量類型一樣,來使用結構體了。
- 在本例中,我們將book結構體還用book來進行typedef定義。
- 這樣定義之后,我們就可以直接用“ book 變量名”來聲明變量了。
定義結構體的位置:
- 定義結構體的位置,也就是這段代碼要放在什么位置才合適。
方式1 :將定義結構體的代碼放在主函數前
#include
typedef struct book
{
int id;
char name[20];
char type[20];
}book;
int main()
{
}
- 我們可以這樣理解,如果我們想要在主函數內使用結構體,那么我們在使用前一定要定義它,因為沒有定義便不存在,不存在便無法使用。
- 而程序的編譯是自上而下進行的,因此定義結構體代碼的位置要放在主函數前,否則就會報錯。
- 也就是說,在該結構體定義下面的所有代碼與函數都可以使用該結構體,不止是主函數。
方式2 :將定義結構體的代碼放在主函數內部
#include
int main()
{
typedef struct book
{
int id;
char name[20];
char type[20];
}book;
}
- 這個時候,該結構體只有在主函數內,并且位于定義該結構體代碼下方的的代碼才能使用。
- 而位于主函數外,或主函數內但位于定義結構體代碼上方的代碼是無法使用的。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4338瀏覽量
62743 -
代碼
+關注
關注
30文章
4802瀏覽量
68740 -
變量
+關注
關注
0文章
613瀏覽量
28408 -
結構體
+關注
關注
1文章
130瀏覽量
10856
發布評論請先 登錄
相關推薦
自定義頭文件中的結構體變量總是賦值無效的原因?
自定義了一個頭文件,里面包含一個結構體,#ifndef Parameterdef#define Parameterdef#endif//Global parameters and variables
發表于 07-20 14:10
請問結構體數組怎么聲明?
試試typedefstruct node{ int date; int next;}linklist;話說哪位老司機解釋下,結構體數組怎么聲明
發表于 07-30 11:42
KIEL MDK關于頭文件聲明包含結構體變量函數出現錯誤問題
? 今天遇到的一個問題:我在一個頭文件聲明了一個結構體:然后再另一個函數寫了一個函數并在.h里面聲明:編譯出現了以下錯誤:大概的意思是說我這個結構
發表于 04-18 11:36
PIC結構體及定義位元結構
PIC結構體及定義位元結構 extern volatile near unsigned char PORTB; // PORTB是一個字節(unsigned c
發表于 10-30 08:28
?2714次閱讀
變量定義和聲明的區別
我們在程序設計中,時時刻刻都用到變量的定義和變量的聲明,可有些時候我們對這個概念不是很清楚,知道它是怎么用,但卻不知是怎么一會事,下面我就簡單的把他們的區別介紹如下:
發表于 11-17 08:38
?1w次閱讀
評論