c++11 - C++ 11的range for里面定义的引用,为什么能被修改?
大家讲道理
大家讲道理 2017-04-17 13:00:24
0
2
807

以下代码节选自 C++ Primer 5th Ed.

string s("Hello World");
for (auto &c: s)
    c = toupper(c);
cout << s << endl;

这里面有一个引用类型的变量c
for循环遍历字符串的过程中,这个引用岂不是指向了不同的位置?
不是说引用的指向不能改变吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(2)
大家讲道理

这里的c是一个变量(迭代器)的别名,你在更改的是c所指向的内容不是引用

Peter_Zhu

你就当每次循环都会新定义一个作用域仅限于一次循环的引用就好了:-)

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!