1.未添加const关键字
void printArry(struct MyStruct * stu)
{
stu->age = 23;
cout << "打印函数输出" << endl;
cout << "姓名:" << stu->name << " 年龄:" << stu->age << " id:" << stu->id << endl;
}
在未添加const关键字之前,修改形参,实参也会跟着改变。
2.添加const关键字防止误操作
void printArry(const struct MyStruct * stu)
{
// stu->age = 23; //提示错误,表达式左值不可修改
cout << "打印函数输出" << endl;
cout << "姓名:" << stu->name << " 年龄:" << stu->age << " id:" << stu->id << endl;
}
将函数中形式参数改为指针,不会复制新的副本出来且可以减少内存空间,添加const修饰结构体,可以防止误操作。
3.源代码
#include<iostream>
using namespace std;
#include<string>
void printArry(const struct MyStruct* stu);
struct MyStruct
{
string name;
int age;
int id;
};
void printArry(const struct MyStruct * stu)
{
// stu->age = 23; //提示错误,表达式左值不可修改
cout << "打印函数输出" << endl;
cout << "姓名:" << stu->name << " 年龄:" << stu->age << " id:" << stu->id << endl;
}
int main()
{
struct MyStruct stu;
stu.name = "小叶";
stu.age = 22;
stu.id = 9354;
printArry(&stu);
//cout << "main函数输出:" << endl;
//cout << "姓名:" << stu.name << " 年龄:" << stu.age << " id:" << stu.id << endl;
return 0;
}