結構體變量的引用與賦值
(1).結構體變量的引用
一個結構體變量由若干成員組成,成員又可稱為結構體分量。對結構體成員的存取由圓點運算符“.”實現表示結構變量成員的一般形式是:
結構變量名.成員名
例如:
struct
{
char ISBN[13];
char BookName[40];
char Author[20];
double Price;
char Publisher[50];
}Book1,Book2;
Book1.BookName即第一本圖書的書名
Book2.Price即第二本圖書的價格
如果成員本身又是一個結構則必須逐級找到最低級的成員才能使用。
例如:
struct stu{ /*定義結構*/
char num[6];
char name[10];
char sex;
struct birth{
int year;
int month;
int day;
}birthday;
double score;
}stu1;
該學生信息結構體如表5-1所示。
表5-1 學生信息結構體
若要引用該學生信息結構體變量stu1中的出生年份這一成員,則應該寫成:
stu1.birthday.year
結構體變量的成員也可以像同類型的其他變量一樣,進行各種運算。例如:
stu1.score+10.5
(2).結構體變量的賦值
為結構體變量賦值,可以有以下兩種方法:
ü 在變量說明中賦初值,稱為初始化。其格式如下:
struct<結構體名><結構體變量名>=<初始值表>;
【例5-14】對結構變量初始化。
#include <stdio.h>
int main()
{
struct stu{ /*定義結構*/
char num[6];
char name[10];
char sex;
double score;
}stu2,stu1={"14012","Rose",'M',78.5};
stu2=stu1;
printf("Number=%s\nName=%s\n",stu2.num,stu2.name);
printf("Sex=%c\nScore=%.2f\n",stu2.sex,stu2.score);
return 0;
}
程序運行結果:
Number=14012
Name=Rose
Sex=M
Score=78.500000
本例中,stu2、stu1均被定義為外部結構變量,并對stu1作了初始化賦值。在main函數中,把stu1的值整體賦予stu2,然后用兩個cout語句輸出stu2各成員的值。
ü 用賦值語句或輸入語句為結構體成員賦值,例如:
【例5-15】給結構變量賦值并輸出其值
#include"stdio.h"
#include<string.h>
struct stu
{ /*定義結構*/
char num[6];
char name[10];
char sex;
float score;
}stu1,stu2;
int main()
{
strcpy(stu1.num,"14102");
strcpy(stu1.name,"Rose");
printf("input sex and score:\n");
scanf("%c %f",&stu1.sex,&stu1.score);
stu2=stu1;
printf("Number=%s\nName=%s\n",stu2.num,stu2.name);
printf("Sex=%c\nScore=%.2f\n",stu2.sex,stu2.score);
return 0;
}
本程序中用賦值語句給num和name兩個成員賦值,用scanf函數動態地輸入sex和score成員值,然后把stu1的所有成員的值整體賦予stu2。最后分別輸出stu2的各個成員值。本例表示了結構變量的賦值、輸入和輸出的方法。要注意的是,無論采用哪種方法為結構體成員賦值,都必須保證類型一致。
程序運行結果:
input sex and score:
M 80.5↙
Number=14102
Name=Rose
Sex=M
Score=80.500000
評論列表