C++复习 auto&

int main()
{
	int arr[] = { 1,2,3,4 };
	for (auto x : arr) {
		cout << x << ' ';
	}
	cout << endl;
	for (auto &x : arr) {
		cout << x << ' ';
	}
	cout << endl;

}

在这里插入图片描述
可见x与arr的地址是不一样的,显示arr里面的每一个对象拷贝到x里,然后输出。为了不要拷贝这一个动作可以使用引用,在 auto后加上&,此时再观察x:
在这里插入图片描述
发现x的地址与arr的地址一模一样,就是同一个东西,所以也称引用是别名。

注意事项
在for语句中(遍历一个容器等类似操作中),千万不要改动vector容器的容量,增加删除都不可以。如:

for(auto vec: vecvalue)
{
	vecvalue.push_back(100);
	cout << vec  << endl;              //输出会乱套
}

你可能感兴趣的:(复习,C++)