定義結構體的同時聲明變量
#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 名稱:西游記 類型:四大名著
- 在定義結構體的同時,我們在結構體末尾的 } 處直接聲明所需變量,相比起在主函數(shù)內(nèi)再用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 :將定義結構體的代碼放在主函數(shù)前
#include
typedef struct book
{
int id;
char name[20];
char type[20];
}book;
int main()
{
}
- 我們可以這樣理解,如果我們想要在主函數(shù)內(nèi)使用結構體,那么我們在使用前一定要定義它,因為沒有定義便不存在,不存在便無法使用。
- 而程序的編譯是自上而下進行的,因此定義結構體代碼的位置要放在主函數(shù)前,否則就會報錯。
- 也就是說,在該結構體定義下面的所有代碼與函數(shù)都可以使用該結構體,不止是主函數(shù)。
方式2 :將定義結構體的代碼放在主函數(shù)內(nèi)部
#include
int main()
{
typedef struct book
{
int id;
char name[20];
char type[20];
}book;
}
- 這個時候,該結構體只有在主函數(shù)內(nèi),并且位于定義該結構體代碼下方的的代碼才能使用。
- 而位于主函數(shù)外,或主函數(shù)內(nèi)但位于定義結構體代碼上方的代碼是無法使用的。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
函數(shù)
+關注
關注
3文章
4417瀏覽量
67504 -
代碼
+關注
關注
30文章
4968瀏覽量
73960 -
變量
+關注
關注
0文章
616瀏覽量
29505 -
結構體
+關注
關注
1文章
131瀏覽量
11372
發(fā)布評論請先 登錄
相關推薦
熱點推薦
定義IO初始化結構體
由上述IOPORT相關功能的枚舉類型我們可以知道,在對IOPORT模塊進行初始化時需要根據(jù)情況配置它們。因此我們定義一個IOPORT初始化的結構體類型IOPORT_Init_t,它的成員包括了由上述所有枚舉類型所
變量的聲明和定義有什么區(qū)別和聯(lián)系
變量的聲明和定義是編程中的兩個重要概念,它們在語法和語義上有一些區(qū)別和聯(lián)系。在本文中,我將詳細介紹變量的聲明和
C語言結構體使用
有時候需要將不同類型的數(shù)據(jù)組合為一個整體,以便于引用。例如,一名學生有學號、姓名、性別、年齡等屬性,如果針對每個屬性都單獨定義一個變量,那么當有多名學生時變量就難以分清。結構
發(fā)表于 11-12 08:30
結構體聲明與定義
符號整數(shù)表示
}
這樣,我們就相當于描繪好了一個框架,以后要用的話直接定義一個這種類型的變量就好了。
2、定義
我們剛剛申請了一個名叫Info的結構
發(fā)表于 12-11 07:52
KIEL MDK關于頭文件聲明包含結構體變量函數(shù)出現(xiàn)錯誤問題
? 今天遇到的一個問題:我在一個頭文件聲明了一個結構體:然后再另一個函數(shù)寫了一個函數(shù)并在.h里面聲明:編譯出現(xiàn)了以下錯誤:大概的意思是說我這個結構
發(fā)表于 04-18 11:36
求助,結構體變量定義引用問題求解
|= mask;
}
如以上語句,GPIO_Type是個結構體定義,定義了一個*base變量,在引用其中的成員時,是base->I
發(fā)表于 10-27 06:06
PIC結構體及定義位元結構
PIC結構體及定義位元結構 extern volatile near unsigned char PORTB; // PORTB是一個字節(jié)(unsigned c
發(fā)表于 10-30 08:28
?2897次閱讀
變量定義和聲明的區(qū)別
我們在程序設計中,時時刻刻都用到變量的定義和變量的聲明,可有些時候我們對這個概念不是很清楚,知道它是怎么用,但卻不知是怎么一會事,下面我就簡單的把他們的區(qū)別介紹如下:
發(fā)表于 11-17 08:38
?1.1w次閱讀
結構體的定義、初始化和賦值
type)的一類。結構體可以被聲明為變量、指針或數(shù)組等,用以實現(xiàn)較復雜的數(shù)據(jù)結構。結構
發(fā)表于 11-20 09:29
?6w次閱讀
C語言如何定義結構體類型變量
在定義了結構體變量后,系統(tǒng)會為之分配內(nèi)存單元。根據(jù)結構體類型中包含的成員情況,在Visual C
定義結構體的同時聲明變量
評論