引導語;結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。以下是本站小編分享給大家的C語言結構體教程,歡迎閱讀!
一、結構說明和結構變數定義
在Turbo C中,結構也是一種資料型別,可以使用結構變數,因此,象其它型別的變數一樣, 在使用結構變數時要先對其定義。
定義結構變數的一般格式為:
struct 結構名
{
型別 變數名;
型別 變數名;
...
} 結構變數;
結構名是結構的識別符號不是變數名。
型別為第二節中所講述的五種資料型別(整型、浮點型、字元型、指標型和無值型)。
構成結構的每一個型別變數稱為結構成員,它象陣列的元素一樣,但陣列中元素是以下標來訪問的,而結構是按變數名字來訪問成員的。
下面舉一個例子來說明怎樣定義結構變數。
struct string
{
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
}person;
這個例子定義了一個結構名為string的結構變數person,如果省略變數名person,則變成對結構的說明。用已說明的結構名也可定義結構變數。這樣定義時上例變成:
struct string
{
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
};
struct string person;
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便,它先作結構說明,再用結構名來定義變數。
例如:
struct string Tianyr, Liuqi, ...;
如果省略結構名,則稱之為無名結構,這種情況常常出現在函式內部,用這種結構時前面的例子變成:
struct
{
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
} Tianyr, Liuqi;
二、結構變數的使用
結構是一個新的資料型別,因此結構變數也可以象其它型別的變數一樣賦值、運算,不同的是結構變數以成員作為基本變數。
結構成員的表示方式為:
結構變數.成員名
如果將結構變數.成員名看成一個整體,則這個整體的資料型別與結構中該成員的資料型別相同,這樣就可象前面所講的變數那樣使用。
下面這個例子定義了一個結構變數,其中每個成員都從鍵盤接收資料,然後對結構中的浮點數求和,並顯示運算結果。請注意這個例子中不同結構成員的訪問。
#include
main()
{
struct
{ /*定義一個結構變數*/
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
}a;
float wage;
char c='Y';
while(c=='Y'||c=='y') /*判斷是否繼續迴圈*/
{
printf(nName:);
scanf(%s, ); /*輸入姓名*/
printf(Age:);
scanf(%d, &); /*輸入年齡*/
printf(Sex:);
scanf(%s, );
printf(Dept:);
scanf(%s, rt);
printf(Wage1:);
scanf(%f, &1); /*輸入工資*/
printf(Wage2:);
scanf(%f, &2);
printf(Wage3:);
scanf(%f, &3);
wage=1+2+3;
printf(The sum of wage is %6.2fn, wage);
printf(Continue?);
c=getche();
}
}