结构体做函数参数
作用:将结构体作为参数向函数中传递
传递方式:
值传递
地址传递
将学生传入到一个参数中,打印学生身上的所有信息
创建结构体变量
#include<iostream>
#include<cstring>
using namespace std;
//1.要先创建学生数据类型:学生包括(姓名,年龄,分数)
struct student {
string name;
int age;
int score;
};
//打印学生信息函数
//1.值传递
//(形参里加不加struct都行)
void one( student t) {
cout<<"one: "<<"姓名:"<<t.name<<" 年龄:"<<t.age<<" 分数:"<<t.score<<endl;
}
//2.址传递
void two(student *t){//利用结构体指针访问结构体成员的时候需要操作符->
cout<<"two: "<<"姓名:"<<t->name<<" 年龄:"<<t->age<<" 分数:"<<t->score<<endl;
}
int main(){
student t;
t.age=50;
t.name="王麻子";
t.score=90;
one(t);
two(&t);
return 0;
}
结构体const使用场景
作用:用const来防止误操作
值传递中若结构体中数据量太多则占用的内存会更多,
用址传递,指针只占四个字节,大大减少了所占内存。
但若在函数中,把值给不小心修改了,就会出问题,那么,const可以让编译器检测出问题,提示程序员进行修改
//2.址传递
void two(const student *t){//利用结构体指针访问结构体成员的时候需要操作符->
cout<<"two: "<<"姓名:"<<t->name<<" 年龄:"<<t->age<<" 分数:"<<t->score<<endl;
}