以下为本人在大一时阅读《C++ Primer Plus》中关于结构体的章节所做的笔记
结构体
一个结构体的成员可以生命在另一个结构体中
(Member of struct can be another defined struct )
struct date
{
int day ;
int year ;
} ;
struct employee
{
date birthday ; //上一个结构体的内容
long code ;
char phone [ 11 ] ;
} worker1, worker2 ;
注意:
不可递归结构(Infinite recursion structure)
struct person
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 11 ] ;
person * son; //Error!不可递归结构
} worker1, worker2 ;
结构体的初始化:
struct employee
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 11 ] ;
}
employee worker = {"Wang Li " , 991083456, 1200.5, "guang zhou " , " 87111111 " } ;
两种访问结构体变量的方式:
1.通过变量名:
struct student
{
int num;
};
student stu1;
stu1.num=1;
2.通过指针
struct student
{
int num;
};
student *stu1;
stu1->num=1;
相同类型的结构体变量可以互相赋值,即是将stu1中所有的内容拷贝到stu2中
注意:
struct student1
{
int num;
};
struct student2
{
int num;
};
student1 stu1;
student2 stu2;
这时候stu1和stu2不是同一个结构体类型
结构体数组:
struct student1
{
int num;
}stu[10];
结构体排序:
问题:结构变量的总体交换降低了排序的效率。
(the overall exchange of struct variables reduces the efficiency of sorting.)
解决方法:使用索引机制,建立结构指针数组
(using the index mechanism, the establishment of a struct pointer array)