日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]C語言中的“結(jié)構(gòu)體”其實就相當(dāng)于其他高級語言中的“記錄”,結(jié)構(gòu)體的定義方法如下: 例如: Struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };(注意最后的分號不

C語言中的“結(jié)構(gòu)體”其實就相當(dāng)于其他高級語言中的“記錄”,結(jié)構(gòu)體的定義方法如下:

例如:

Struct student

{ int num;

char name[20];

char sex;

int age;

float score;

char addr[30];

};(注意最后的分號不能省略)。

其中第一行的“student”是該結(jié)構(gòu)體的名稱,花括號里面的內(nèi)容是結(jié)構(gòu)體的成員名,這是聲明結(jié)構(gòu)體的一般形式。也可以在聲明結(jié)構(gòu)體的同時對它進(jìn)行初始化,例如:

struct stu

{

int num;

char *name;

char sex;

float score;

}pupil[5]={

{101,"Tom",'M',45.8},

{102,"Mike",'M',62.5},

{103,"Chris",'F',92.5},

{104,"Rose",'F',87.6},

{105,"Nate",'M',58.8}

};

該代碼中的“pupil[5]”稱為結(jié)構(gòu)體數(shù)組,它屬于結(jié)構(gòu)體變量,在定義該變量的同時對它進(jìn)行了初始化操作。我們也可以先聲明結(jié)構(gòu)體,然后再對它進(jìn)行初始化操作。

例如:

#include <stdio.h>

int main()

{

struct student

{

char name[8];

int age;

char sex[4];

char depart[20];

float grade1,grade2,grade3;

}a;

float wage;

char c='Y';

if(c=='Y'||c=='y')

{

printf("nName:");

scanf("%s", a.name);

printf("Age:");

scanf("%d", &a.age);

printf("Sex:");

scanf("%s", a.sex);

printf("Dept:");

scanf("%s", a.depart);

printf("Grade1:");

scanf("%f", &a.grade1);

printf("Grade2:");

scanf("%f", &a.grade2);

printf("Grade3:");

scanf("%f", &a.grade3);

wage=a.grade1+a.grade2+a.grade3;

printf("The sum of wage is %6.2fn", wage);

}

return 0;

}

該程序中定義了一個名為“student”的結(jié)構(gòu)體,變量名為“a”,然后再后面“if”包含的符合語句中對該結(jié)構(gòu)體進(jìn)行初始化。在此,我們可以看出,對結(jié)構(gòu)體的初始化,只能對它里面的每個成員分別初始化。

#include <stdio.h>

struct stu

{

int num;

char *name;

char sex;

float score;

}pupil[5]={

{101,"Tom",'M',45.8},

{102,"Mike",'M',62.5},

{103,"Chris",'F',92.5},

{104,"Rose",'F',87.6},

{105,"Nate",'M',58.8}

};

void avg(struct stu *ps)

{

int c=0,i;

float ave,s=0;

for(i=0;i<5;i++,ps++)

{

s+=ps->score;

if(ps->score<60) c+=1;

}

printf("s=%.3fn",s);

ave=s/5;

printf("average=%.3fncount=%dn",ave,c);

}

int main()

{

struct stu *ps;

ps=pupil;

avg(ps);

return 0;

}

此程序是關(guān)于結(jié)構(gòu)體指針變量作函數(shù)參數(shù),這樣可以提高程序的運(yùn)行效率,程序中我們定義了一個“stu”的結(jié)構(gòu)體,變量名為“pupil[5]”,并對其進(jìn)行了初始化,在主函數(shù)中定義了一個該結(jié)構(gòu)體的指針ps,將pupil賦值給ps,當(dāng)函數(shù)avg()調(diào)用該結(jié)構(gòu)體時,用指針ps來傳遞pupil的地址,從而,提高了該程序的效率。

結(jié)構(gòu)體與指針的結(jié)合使用,可以有效的解決現(xiàn)實生活中的很多問題,因此C語言中的指針和結(jié)構(gòu)體應(yīng)該能夠熟練的掌握。



來源:miaomi67次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉