结构体变量的引用与赋值
(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
评论列表