结构将不同的数据类型整合在一起构成一个新的类型,相当于数据中一条记录,比如学生结构体,整合了学好,姓名等信息。结构体的好处就是可以对这些信息进行整体管理操作,类似面向对象中类的属性,有了结构体,就可以更好抽象描述一个类别,个人感觉类就是由结构体发展而来的,在C/C++中,结构体声明的关键字为struct.
1.第一种方式
struct 结构体名称{
数据类型 成员1;
数据类型 成员2;
};
2.第二种语法表示
typedef struct 结构体名称{
数据类型 member1;
数据类型 member2;
}结构体名称别名;
这种方式在声明结构体变量时有两种方式。
原因:这里使用了typedef关键字,此关键字的作用就是声明数据类型的别名,方便用户编程,所以这里用了之后,结构体名称别名就相当于struct 结构体名称。在声明结构体变量时,就无需写struct了。
3. 第三种方式
struct 结构体名称{
数据类型 member1;
数据类型 member2;
}结构体变量名;
相当于:
struct 结构体名称{
数据类型 member1;
数据类型 member2;
};
struct 结构体名称 结构体变量名;
这种方式既定义了结构体名称,同时声明了一个结构体变量名。在其它地方也可以通过struct 结构体来再次声明其它变量,而第四种方法则不可以。
example:
#include <stdio.h>
#include <iostream>
using namespace std;
//方式1
struct Student
{
int No;
char name[10];
};
//方式2
typedef struct Studentwang{
int sNo;
char name[10];
}Stuwang;
//方式3
struct StudentLi
{
int Nogao;
char namegao[10];
}gao;//此处li是变量名
int main(){
struct Student stu;//方式1
scanf("%d",&stu.No);
cout<<"here"<<stu.No<<endl;
Stuwang ming;
scanf("%d",&ming.sNo);
cout<<"here ming"<<ming.sNo<<endl;
//第3中方式
scanf("%d",gao.Nogao);
cout<<"gao no"<<gao.Nogao<<endl;
return 0;
}