0
点赞
收藏
分享

微信扫一扫

结构体相关知识点详解

中间件小哥 2022-04-27 阅读 86

一、结构体与结构体的声明

1.定义:C++允许用户定义一种新的数据类型,把属于同一事物的若干个相关数据构成一个整体,统一管理,新的数据类型称为结构体。

2.声明形式:

struct 结构体类型名

{

数据类型 成员1;

数据类型 成员2;

~ ~    ~  ~    ~

数据类型 成员n;

};

例:

struct student
{
  int num;
  char name[20];
  char sex;
};

二、结构体类型变量

1.定义结构体类型变量

(1)先声明在定义

struct student
{
  int num;
  char name[20];
  char sex;
};
student stu1,stu2;

(2)声明的同时去定义

struct student
{
  int num;
  char name[20];
  char sex;
} stu1,stu2;

(3)直接定义

struct
{
  int num;
  char name[20];
  char sex;
} stu1,stu2;
//这种形式声明的结构体无类型名,不能再去定义新的变量

注意:

(1)结构体变量的成员也可以是一个结构体变量(结构体的某一成员数据类型是另一结构体的类型);

(2)结构体变量可以在定义时初始化

struct student
{
  int num;
  char name[20];
  char sex;
} stu1={407,"ChenDan",'M'};
//或者声明在前 student stu1={407,"ChenDan",'M'};

(3)不完全初始化余下成员值为0

2.结构体变量的引用

除了在定义的时候初始化,结构体变量不可以整体赋值

struct student
{
  int num;
  char name[20];
  char sex;
} stu1,stu2;
stu1={407,"ChenDan",'M'}  //错误
cout<<stu1;     //错误

引用结构体变量的形式是:结构体变量名.成员名

正确赋值:

stu1.num=407;
strcpy(stu1.name,"ChenDan");
stu1.sex='M';

三、结构体数组和指针

(1)结构体数组及初始化

结构体数组的定义方法与结构体类型变量相似。

struct student
{
  int num;
  char name[20];
  char sex;
};
student num[3]={{222,"Xiatiya",'M'},{333,"AnNiYa",'M'},{111,"ChenYi",'F'}};

2.结构体变量的指针

(1)

定义形式:结构体类型名 * 指针变量名;

struct student
{
  int num;
  char name[20];
  char sex;
} stu1={407,"ChenDan",'M'};
studet *p;
p=&stu;

(2)指针引用结构体变量的成员有两种形式

(*指针名).成员名

例如:(*p).num   引用变量stu1的成员num

指针名->成员名

例如:p->num

注意++p->num相当于++(p->num)

举报

相关推荐

结构体知识点

Flutter相关知识点

MQ相关知识点

Stream相关知识点

HTML相关知识点

Hibernate相关知识点

JVM相关知识点

0 条评论