什么是结构
这个问题由下面一个实例引入
像这种检索信息如果用普通的函数定义,无论是查找还是录入都会很麻烦,而且它里面还会涉及到很多的的数据类型
例如 :
ID和手机号要用int类型,姓名 要用 char 类型而且这还是只有三个附属,如果再加入QQ、博客岂不是更多
于是有人就考虑有没有一种结构直接可以一次性输入这几个附属信息,一个一个输入太麻烦
于是结构就产生了
结构可看作一种数据类型因为它可以直接定义变量,我们一步一步来看
结构的定义
定义结构类型的说明语句形式如下;
struct 标识符
{ 类型 成员1;
类型 成员2;
...
类型 成员n;
};
由上面可以看出定义结构类型需要用到关键字struct
而标识符是你决定给新的数据类型起的名字
如下面定义一个叫Contact的数据类型
struct Contact
{
int id;
char name[16]; //定义成员name
char phone[11]; //定义成员phone
};
再如下面定义一个叫Employee的结构类型
struct Employee
{
char name[10]; //定义成员name
long code; //定义成员code
double salary; //定义成员salary
char *address; //定义成员 address
char phone[11]; //定义成员phone
};
由上面看出结构中成员类型是可以任意的、不同的
而一般定义的标识符首字母大写
结构体的定义类似于函数的定义,不同的是最后 } 后面多了一个 ;
定义之后就是引用了
说明一下:“要访问结构体的成员,就要在结构变量后面加.再加成员名”
表示****的####
如:today.temp
#include<iostream>
using namespace std;
struct Weather //定义结构体名字
{ double temp; //定义温度
double wind; //定义风速
};
int main()
{ Weather today; //用新结构类型定义变量
today.temp=10.5; //访问today的temp并赋值
today.wind=3.1; //访问today的wind并赋值
cout<<"Temp="<<today.temp<<endl;
cout<<"Wind="<<today.wind<<endl;
}
运行结果如下
由上面看出新结构类型Weather直接定义了today这个变量所以说是一种新的数据类型,因为只有数据类型可以定义变量
既然说是一种结构类型那么结构类型能干的它当然也能干
如下面用定义的Contact来定义变量、数组、返回值……
结构初始化
struct employee
{ char name[10];
int id;
char address[10];
char phone[11];
}worker1={"Wangming",99287171,"guangzhou","13245681901"};
初始化赋值按次序、两成员用逗号隔开,用花括号
不得不说结构的产生确实方便了不少,以上就是小白对结构体的第一印象,如有不妥,欢迎指正,溜了溜了……