一.结构体的认识
1.结构体是由不同数据类型的数据组成的集合体。
2.结构可以由结构类型不同的成员构成。
3.一个结构变量在内存中占有一片连续的存储空间。
二.定义结构体
struct 标识符
{ 类型 成员1;
类型 成员2;
…
类型 成员n;
};
注:其中有成员类型相同时尽量写,这样可以看清每个成员
可以用不同的方法定义一个结构变量:
1.声明类型之后声明变量
2.声明类型同时声明类型
注意:
1.一个结构类型的成员可以是另一个已定义的结构类型
struct date
{int month;
int day;
int year;
}
struct employee
{char name[10];
date birthday;
}worker1,worker2;
2.不能出现不能实现的无穷递归结构
struct person
{char name;
long code;
person son;
};
但改成person *son即可
3.声明结构变量的同时可以初始化
char employee
{char name;
long code;
char address[50];
char phone[11];
}worker{"wang li",99874515,"guang zhou",874444};
三.访问结构变量的成员
1.方法一 结构变量.成员
例.
#include<iostream>
using namespace std;
struct weather;
{double temp;
double wind;
};
int mian()
{weather today;
today.temp=10.5;
today.wind=3.1;
cout<<"temp="<<today.temp<<endl;
cout<<"wind="<<today.wind<<endl;
};
2.方法二 用指针访问结构变量的成员
结构指针->成员 或 (*结构指针).成员
例.
#include<iostream>
using namespace std;
#include<csting>
struct person
{cahr name[20];
double salary;
};
int main()
{person pr1;
person *pp;//定义指针变量
pp=&pr1;//取结构变量地址
strcpy(*pp.name,"david");//对结构成员赋值
*pp.salary=3350.0;
cout<<(*pp).name<<" "<<(*pp).salary<<endl;
return 0;
}
四.类型相同的结构变量可以整体赋值
类型相同的变量指用同一类型标识符说明的变量
例.
struct wather1
{double temp;
double wind;
}yesterday;
struct wather2
{double temp;
double wind;
}today;
虽然yesterday和today的成员相同,但是不是相同类型的变量,因此不可以整体赋值。
例.
#include<iostream>
using namespace std;
struct wether
{double temp;
double wind;
}yesterday;
int main()
{weather today;
yesterday.temp=10.5;
yesterday.wind=3.5;
today=yesterday;
cout<<"temp="<<today.temp<<endl;
cout<<"wind="<<today.wind<<endl;
return 0;
}