一、定义与声明
1.先定义结构体类型再单独进行变量定义
struct Student
{
int Code;
char Name[20];
char sex;
int age;
};
struct Student Stu;
struct Student StuArray[20];
struct Student *pStru;
复制代码
结构体类型是struct Student,因此,struct 和 student都不能省略。
2. 紧跟在结构体类型说明之后进行定义
struct Student
{
int code;
char name[20];
char sex;
int age;
}Stu, StuArray[20], *pStu;
复制代码
这种情况下,后面还可以继续定义结构体变量。
3. 在说明一个无名结构体变量的同时直接进行定义
struct
{
int code;
char name[20];
char sex;
int age;
}Stu, Stu[10], *pStu;
复制代码
这种情况下,之后不能再定义其他变量。
4. 使用typedef说明一个结构体变量之后再用新类名来定义变量
typedef struct
{
int code;
char name[20];
char sex;
int age;
}student;
student Stu, Stu[10], *pStu;
复制代码
student是一个具体的结构体类型,唯一标识,不用再加struct
5. 使用new动态创建结构体变量
使用new动态创建结构体变量时,必须是结构体指针类型。
访问时,普通结构体变量使用成员变量访问符"."
指针类型的结构体变量使用的成员变量访问符为“->"
注意:动态创建结构体变量使用后不能忘记delete
#include <iostream>
using namespace std;
struct Student
{
int code;
char name[20];
char sex;
int age;
}Stu, StuArray[10], *pStu;
int main()
{
Student *s = new Student(); // Student *s = new Student;
s->code = 1;
cout << s->code;
delete s;
return 0;
}
复制代码
注意:放在函数里面定义的,只有这个函数里面才能访问。
二、结构体构造函数
三种结构体初始化方法
1. 利用结构体自带的默认构造函数
2. 利用带参数的构造函数
3. 利用默认无参的构造函数
三、结构体嵌套
一个结构体可以嵌套在另一个结构体中。
struct Costs
{
double wholesale;
double retail;
};
struct Item
{
string partNum;
string description;
Costs pricing;
}widget;
复制代码
嵌套结构体访问的方式
widget.partnum = "1234A";
widget.description = "Iron";
widget.pricing.wholesale = 100.0;
widget.pricing.retail = 150.0;
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END