C++基础--指针--使用指针优化局部变量的复制
使用指针对访存进行优化
假设现在有一个结构体,里面有非常多的成员,现在要对其使用tostring()方法进行打印
struct a {
int aaa;
//很多成员
};
int main() {
struct a xxx = a{ 123 };
tostring(xxx);
return 0;
}
void tostring(struct a instance) {
cout << instance.aaa << endl;
}
在tostring方法体里,要进行局部变量与入参的复制,假设该结构体内有大的数据,则非常占用内存,且复制相当消耗时间。这里可以用指针的方式进行处理。如下:
struct a {
int aaa;
};
int main() {
struct a xxx = a{ 123 };
//修改为传入地址
tostring(&xxx);
return 0;
}
//修改为const struct a *instance 防止对原有数据的修改
void tostring(const struct a *instance) {
//修改访问成员的方式
cout << instance->aaa << endl;
}
这样一来,发生的仅仅使指针的复制。