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;
}

这样一来,发生的仅仅使指针的复制。

posted @ 2020-12-06 16:51  lsxkugou  阅读(149)  评论(0编辑  收藏  举报