7.1.2 結(jié)構(gòu)體類型變量的引用
學(xué)習(xí)了怎樣定義結(jié)構(gòu)體類型和結(jié)構(gòu)體類型變量,怎樣正確地引用該結(jié)構(gòu)體類型變量的成員呢?C 規(guī)定引用的形式為:
<結(jié)構(gòu)體類型變量名> . <成員名>
若我們定義的結(jié)構(gòu)體類型及變量如下:
struct data
{
int day;
int month;
int year;
} time1,time2;
則變量time1和time2各成員的引用形式為:time1.day、
time1.month、time1.year及time2.day、time2.month、
time2.year,如圖7-1所示。
其結(jié)構(gòu)體類型變量的各成員與相應(yīng)的簡(jiǎn)單類型變量使
用方法完全相同。
7.1.3結(jié)構(gòu)體類型變量的初始化
由于結(jié)構(gòu)體類型變量匯集了各類不同數(shù)據(jù)類型的成員,所以結(jié)構(gòu)體類型變量的初始化就略顯復(fù)雜。
結(jié)構(gòu)體類型變量的定義和初始化為:
struct stu / *定義學(xué)生結(jié)構(gòu)體類型* /
{
char name[20]; / * 學(xué)生姓名* /
char sex; / * 性別* /
long num; / *學(xué)號(hào)* /
float score[3]; / * 三科考試成績(jī)* /
};
struct stu student={"liping",'f',970541,98.5,97.4,95};
我們也可以通過C提供的輸入輸出函數(shù)完成對(duì)結(jié)構(gòu)體類型變量成員的輸入輸出。由于結(jié)構(gòu)體類型變量成員的數(shù)據(jù)類型通常是不一樣的,所以要將結(jié)構(gòu)體類型變量成員以字符串的形式輸入,利用C的類型轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換為所需類型。類型轉(zhuǎn)換的函數(shù)是:
int atoi(char *str);轉(zhuǎn)換str所指向的字符串為整型,其函數(shù)的返回值為整型。
double atof(char*str);轉(zhuǎn)換str所指向的字符串為實(shí)型,其函數(shù)的返回值為雙精度的實(shí)型。
long atol(char*str);轉(zhuǎn)換str所指向的字符串為長(zhǎng)整型,其函數(shù)的返回值為長(zhǎng)整型。
學(xué)習(xí)了怎樣定義結(jié)構(gòu)體類型和結(jié)構(gòu)體類型變量,怎樣正確地引用該結(jié)構(gòu)體類型變量的成員呢?C 規(guī)定引用的形式為:
<結(jié)構(gòu)體類型變量名> . <成員名>
若我們定義的結(jié)構(gòu)體類型及變量如下:
struct data
{
int day;
int month;
int year;
} time1,time2;
則變量time1和time2各成員的引用形式為:time1.day、
time1.month、time1.year及time2.day、time2.month、
time2.year,如圖7-1所示。
其結(jié)構(gòu)體類型變量的各成員與相應(yīng)的簡(jiǎn)單類型變量使
用方法完全相同。
7.1.3結(jié)構(gòu)體類型變量的初始化
由于結(jié)構(gòu)體類型變量匯集了各類不同數(shù)據(jù)類型的成員,所以結(jié)構(gòu)體類型變量的初始化就略顯復(fù)雜。
結(jié)構(gòu)體類型變量的定義和初始化為:
struct stu / *定義學(xué)生結(jié)構(gòu)體類型* /
{
char name[20]; / * 學(xué)生姓名* /
char sex; / * 性別* /
long num; / *學(xué)號(hào)* /
float score[3]; / * 三科考試成績(jī)* /
};
struct stu student={"liping",'f',970541,98.5,97.4,95};
我們也可以通過C提供的輸入輸出函數(shù)完成對(duì)結(jié)構(gòu)體類型變量成員的輸入輸出。由于結(jié)構(gòu)體類型變量成員的數(shù)據(jù)類型通常是不一樣的,所以要將結(jié)構(gòu)體類型變量成員以字符串的形式輸入,利用C的類型轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換為所需類型。類型轉(zhuǎn)換的函數(shù)是:
int atoi(char *str);轉(zhuǎn)換str所指向的字符串為整型,其函數(shù)的返回值為整型。
double atof(char*str);轉(zhuǎn)換str所指向的字符串為實(shí)型,其函數(shù)的返回值為雙精度的實(shí)型。
long atol(char*str);轉(zhuǎn)換str所指向的字符串為長(zhǎng)整型,其函數(shù)的返回值為長(zhǎng)整型。