关于指针和cost关键字的小应用
C++小技巧
利用指针节省内存空间
当调用一个函数时用地址传递要比值传递节省内存空间的占用
假如我们定义一个结构体Student
struct Student
{
string name;
int age;
int score;
};
void printf1(Student p)
{
cout << "子函数1中的姓名: " << p.name << " 年龄: " << p.age << " 分数: " << p.score << endl;
}
void printf2(const Student *p)
{
//p->age += 4;//加入从const之后,一旦修改就会报错,可以防止误操作。
cout << "子函数2中的姓名: " << p->name << " 年龄: " << p->age << " 分数: " << p->score << endl;
}
在上面的函数中函数1是值传递占用内存空间为36,函数2为地址传递占用内存空间为4,但是其功能是相同的。
但是在函数2对*p进行操作会将实参改变,所以需要在定义形参时加一个cost来修饰,使其变为一个常量指针来防止误操作