首頁  >  問答  >  主體

c++11 - C++ 11的range for里面定义的引用,为什么能被修改?

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

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

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

大家讲道理大家讲道理2714 天前812

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 13:02:24

    這裡的c是一個變數(迭代器)的別名,你在更改的是c所指向的內容不是引用

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:02:24

    你就當每次循環都會新定義一個作用域只限於一次循環的引用就好了:-)

    回覆
    0
  • 取消回覆