C++结构体变量的引用
时间:2014-10-22 21:58 点击:次
在定义了结构体变量以后,当然可以引用这个变量,常用的方法有以下几种。
1) 可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量。
如上面的student1和student2都是student类型的变量,可以这样赋值:
student1= student2;
2) 可以引用一个结构体变量中的一个成员的值。
例如, student1.num表示结构体变量student1中的成员的值,如果student1的值如图7.2所示,则student1.num的值为10001。
引用结构体变量中成员的一般方式为:
结构体变量名.成员名
例如可以这样对变量的成员赋值:
student1.num=10010;
3) 如果成员本身也是一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。
例如,对上面定义的结构体变量student1,可以这样访问各成员:
student1.num (引用结构体变量student1中的num成员)
如果想引用student1变量中的birthday成员中的month成员,不能写成student1.month,必须逐级引用,即
student1.birthday.month=12; (引用结构体变量student1中的birthday成员中的month成员)
4) 不能将一个结构体变量作为一个整体进行输入和输出。
例如,已定义student1和student2为结构体变量,并且它们已有值。不能企图这样输出结构体变量中的各成员的值
cin>>student1;
只能对结构体变量中的各个成员分别进行输入和输出。
5) 对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算种类)。例如:
student2.score=student1.score;
sum=student1.score+student2.score;
student1.age++;
++student1.age;
由于“.”运算符的优先级最高,student1.age++相当于(student1.age)++ 。++是对student1.age进行自加运算,而不是先对age进行自加运算。
6) 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。如:
cout<<&student1; //输出student1的首地址
cout<<&student1.age; //输出student1.age的地址
结构体变量的地址主要用作函数参数,将结构体变量的地址传递给形参。
【例7.1】引用结构体变量中的成员。
运行结果如下:
10002
Wang Li
f
5/23/1982
89.5
1) 可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量。
如上面的student1和student2都是student类型的变量,可以这样赋值:
student1= student2;
2) 可以引用一个结构体变量中的一个成员的值。
例如, student1.num表示结构体变量student1中的成员的值,如果student1的值如图7.2所示,则student1.num的值为10001。
引用结构体变量中成员的一般方式为:
结构体变量名.成员名
例如可以这样对变量的成员赋值:
student1.num=10010;
3) 如果成员本身也是一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。
例如,对上面定义的结构体变量student1,可以这样访问各成员:
student1.num (引用结构体变量student1中的num成员)
如果想引用student1变量中的birthday成员中的month成员,不能写成student1.month,必须逐级引用,即
student1.birthday.month=12; (引用结构体变量student1中的birthday成员中的month成员)
4) 不能将一个结构体变量作为一个整体进行输入和输出。
例如,已定义student1和student2为结构体变量,并且它们已有值。不能企图这样输出结构体变量中的各成员的值
cin>>student1;
只能对结构体变量中的各个成员分别进行输入和输出。
5) 对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算种类)。例如:
student2.score=student1.score;
sum=student1.score+student2.score;
student1.age++;
++student1.age;
由于“.”运算符的优先级最高,student1.age++相当于(student1.age)++ 。++是对student1.age进行自加运算,而不是先对age进行自加运算。
6) 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。如:
cout<<&student1; //输出student1的首地址
cout<<&student1.age; //输出student1.age的地址
结构体变量的地址主要用作函数参数,将结构体变量的地址传递给形参。
【例7.1】引用结构体变量中的成员。
- #include <iostream>
- using namespace std;
- struct Date//声明结构体类型Date
- {
- int month;
- int day;
- int year;
- };
- struct Student//声明结构体类型Student
- {
- int num;
- char name[20];
- char sex;
- Date birthday; //声明birthday为Date类型的成员
- float score;
- }student1,student2={10002,"Wang Li",'f',5,23,1982,89.5};
- //定义Student 类型的变量student1,student2,并对student2初始化
- int main( )
- {
- student1=student2; //将student2各成员的值赋予student1的相应成员
- cout<<student1.num<<endl; //输出student1中的num成员的值
- cout<<student1.name<<endl; //输出student1中的name成员的值
- cout<<student1.sex<<endl; //输出student1中的sex成员的值
- cout<<student1.birthday.month<<'/'<<student1.birthday.day<<'/' <<student1.birthday.year<<endl; //输出student1中的birthday各成员的值
- cout<<student1.score<<endl;
- return 0;
- }
#include <iostream> using namespace std; struct Date//声明结构体类型Date { int month; int day; int year; }; struct Student//声明结构体类型Student { int num; char name[20]; char sex; Date birthday; //声明birthday为Date类型的成员 float score; }student1,student2={10002,"Wang Li",'f',5,23,1982,89.5}; //定义Student 类型的变量student1,student2,并对student2初始化 int main( ) { student1=student2; //将student2各成员的值赋予student1的相应成员 cout<<student1.num<<endl; //输出student1中的num成员的值 cout<<student1.name<<endl; //输出student1中的name成员的值 cout<<student1.sex<<endl; //输出student1中的sex成员的值 cout<<student1.birthday.month<<'/'<<student1.birthday.day<<'/' <<student1.birthday.year<<endl; //输出student1中的birthday各成员的值 cout<<student1.score<<endl; return 0; }
10002
Wang Li
f
5/23/1982
89.5
顶一下
(2)
100%
踩一下
(0)
0%
上一篇:C++结构体类型的定义和初始化
下一篇:C++结构体数组
相关内容:
最新内容
热点内容
- QQ群
-
微信
- 返回首页
- 返回顶部