python string中的for

为什么是auto &c,不是auto c?

好像加了&就是直接用,不加会把字符串复制一遍,但是事实上如果不加&,对字符串的操作就不会生效,这是为什么呢?

请各位指教

using namespace std;
#include<string>
using std::string;

int main()
{
	cout << "please input your string:" << endl;
	string s;
	cin >> s;
	for (auto &c : s)
	{
		c = 'x';
	}
	
	cout << s;
}

 

首先说的是你这是c++,不是python c++里面&代表引用,修改了引用值c相当于直接修改了s里面的字符 不加&,相当于c只是对s里面字符的复制,修改c不会改变s