struct:结构体structure
c++中的几个基本类型如 int/char/short,float/double,数组,指针,但是还是不够用,将基本类型组合起来,新形成的数学据类型,称为“自定义类型”
例:
struct student //struct是关键字 后面是新类型的名字
{
//接下来会有很多成员,花括号里面是一系列成员变量
int id; //成员定义的方式和普通定义的方式一样
char name[16];
char phone[16];注意 定义成员用“;”赋初始值用“,”
}结构体变量表; //可以同时定义多个结构体变量,需要用“,”隔开,**最后“;”不要漏掉**
struct:结构体
定义一个变量(利用上面所定义的)接着
(1)定义一个变量
student c;
(2)定义数组
student c[111];
(3)指针
student *p=&c;
(4)作为函数参数
void test (student c);
(5)作为返回值类型
student make (int id)
(1) 变量定义和初始化
定义一个变量
student a;//定义一个变量,不给初始值
定义时初始化:用大括号,将各个成员***按顺序***的初始值列出。(对比二维数组初始化)
struct student
{
int id;
char name[16];
char phone[16];
};
student a=
{
201501, //int初始化
"adaf" , //字符数组初始化
"12363255426" //最后一个不用 “,”
};
和一维数组一样,可以只初始化部分成员变量。
student a={20005,’‘john’’};//只初始化前两个成员
也可以直接清零
student a={0};//则每位变量的每一位都是0。
注意: 1.初始化时候一定要用花括号,结尾用“;”结束
2.各字段的初始值要与该字段的类型匹配
3.各初始值要以逗号隔开
4.空间上各位都是连续的
(2)定义数组
可以和基本类型一样,定义数组,表示并排的多个对象。
student a[3];
student a[3]=
{
{
2001,"acs","1232102123"},
{
2002,"ass","1232102124"},
{
2003,"aos","1232102125"}
};
若输出cout<<a[1].id则是第二行的2002
(3)对成员的访问
使用点号访问其成员:
名字 + . + 结构里的名字
student a;
a.id=201501;
strcpy(a.name,"John");//strcpy函数用于字符串的拷贝。
strcpy(a.phone,"12011245231")