C語言 結構體類型的定義
結構體類型與前面所講過的整型int、浮點型float—樣是一個數(shù)據(jù)類型,但是結構體類型需要程序員根據(jù)自己的要求先定義,一旦一個結構體類型定義好,可以用它來定義結構體變量。定義結構體類型的過程實際上相當于對上述學生信息表確定標題行的過程,所以結構體類型實際上是一個模板。
結構體類型的定義形式如下:
struct結構體名]
{
類型標識符結構體成員名1 ;
類型標識符結構體成員名2 ;
…
類型標識符結構體成員名n ;
};
例如,定義學生結構體的定義如下:
struct student
{
int sno; /*學號*/
char snarae[10]; /*姓名*/
int sage; /*年齡*/
char depmt [20]; /*專業(yè)*/
float cscore; /*成績*/
};
關于結構體類型的聲明,有幾點需要說明:
①結構體名:結構體類型的標識是一個合法的標識符,例如上面的student就是結構體名,有時也稱之為結構體標記。
②結構體成員:結構體的每一個成員代表了結構體的一個分量,可以將每一個結構體成員稱為結構體中的域。結構體成員名的形式和定義普通變量相同,結構體成員可以是一個簡單類型,也可以是一個構造類型,如結構體、數(shù)組等。
③結構體成員的定義方法與定義變量相同,其形式為:
類型標識符成員名;
④成員名的命名遵循標識符的命名規(guī)則。
⑤一個結構體的成員也可以是另一個已經(jīng)定義好的結構體類型。
例如:定義一個設備結構體,包括以下信息:設備編號、設備名稱、設備購進日期、設備價格。
因為C語言中沒有日期型數(shù)據(jù)類型,所以日期型也可以定義成一個結構體的形式:
struct device
{
int d_no;
char d_name[20];
struct date d_date; /*用日期結構體類型定義成員*/
float s_price;
};
可以看到,device結構體中的d_date;是用date結構體類型定義的。而date結構體類型應該已經(jīng)在之前定義好:
struct date
{
int year;
int month;
int day;
};
⑥結構體類型的定義中,成員可以像上面一樣每行寫一個成員的定義,也可以將多個成員的定義寫在一行。例如,上述student的定義可寫成:
struct student
{
int sno; char sname[10]; int sage; char depmt[20]; float cscore;
};
點擊加載更多評論>>