第七部分结构体

一、结构体的定义与使用

1、定义结构体: struct 结构体名 {结构体成员列表} 例子如下:

2、创建结构体变量:

(1)struct 结构体名 变量名

(2)struct 结构体名 变量名 = {成员1值,成员2值...)

(3)定义结构题同时创建变量

ps: (1) 定义结构体时 struct不可省略,但在创建变量时可以省略   

      (2) 所创建的结构体变量通过“.”进行访问成员

以第三种创建变量方式为例:

struct stu

{ string name; int age; int score;}s1;

stu s1.name = "smart";

stu s1.age = 10;

stu s1.score = 99;

 二、结构体数组及指针

1、结构体数组:

创建方法: struct 结构体名 数组名[数组长度]={(),(),(),...}

使用方法结合数组及结构体使用方法:

struct student arr[0].name ="smart";

2、结构体指针:

创建方法: struct student *p= &s1

解引用:cout<<"name"<<p->name;

三、结构体嵌套、结构体做函数参数及const

1、结构体嵌套

定义:struct teacher t1={struct student,...}; //嵌套结构体时,内部嵌套的结构体应当先进行定义

用值: cout<< "s1 's name :"<<t1.s1.name<<endl; 

2、结构体做函数参数

(1)值传递:

void print(struct student s){};

int main{

struct student s;....创建结构体变量

print(s);

(2)地址传递

void print(struct student *p){};//struct 可以省略

int main{

struct student s;....创建结构体变量

print(&s);

值传递与地址传递的区别,同指针所讲相同,对于较大的结构体来说,值传递会占用较大的内存.将函数中的形参改为指针可以减少内存空间

3、const指令可以防止,函数地址传递时的误操作,不允许修改值 :const student * p

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容