在以下代码的上下文中,为什么“ cout << c”是合法的而“ c =“ x””是非法的?

雷神

我是C ++的新手,正在尝试学习关键字“自动”和引用的概念。我在网上看到了这个问题和答案。

以下范围合法吗?如果是这样,c的类型是什么?

const string s = "Keep out!";
for (auto &c : s){ /*... */ }

答案是:

取决于for循环体内的代码。例如:

cout << c;  // legal.
c = 'X';    // illegal.

没有提供解释。有人可以解释为什么会这样吗?

稻田

因为字符串是常量,所以您不能修改它。基于范围的循环正在使用auto &将有效变为的类型const char &这意味着您要引用实际字符串中的字符,而不是它们的副本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么以下代码在C ++中是非法的

来自分类Dev

C ++:为什么构造函数“ A(A a){}”是非法的?

来自分类Dev

为什么本地函数定义在C ++中是非法的?

来自分类Dev

指向未指定大小“(* p)[]”的数组的指针在C ++中是非法的,但在C中是合法的

来自分类Dev

为什么我从C#代码中得到“名称Regex在当前上下文中不存在”?

来自分类Dev

在C#中不安全代码的上下文中什么是不受信任的程序集

来自分类Dev

在C#中不安全代码的上下文中什么是不受信任的程序集

来自分类Dev

为什么用C展平多维数组是非法的?

来自分类Dev

在c ++中'cout << cout'和'cout <<&cout'之间的区别?

来自分类Dev

从循环外跳入循环内的标签是否是非法的C#代码?

来自分类Dev

C ++:为什么Iter ++-> empty()合法?

来自分类Dev

为什么int&r = 0是非法的而const int&r = 0是合法的?

来自分类Dev

C ++ cout而不是fstream

来自分类Dev

C ++ Boost Lambda Cout <<

来自分类Dev

如何从C ++代码在特定QML项目的上下文中发射信号

来自分类Dev

为什么cout不打印extern“ C”变量?

来自分类Dev

为什么Horizontal Tab对C ++ cout不起作用?

来自分类Dev

c++ 为什么 cout 在这里如此重要?

来自分类Dev

以下代码在C中做什么?

来自分类Dev

在C#中的程序集上下文中,激活作用域指的是什么?

来自分类Dev

在C#泛型类型的上下文中,什么是类型标识?

来自分类Dev

为什么以下代码使用`c ++ 03`而不是`c ++ 11`进行编译

来自分类Dev

为什么以下代码使用`c ++ 03`而不是`c ++ 11`进行编译

来自分类Dev

为什么在C#中这不合法?

来自分类Dev

为什么这些定义在C语言中不合法?

来自分类Dev

C ++:非类上下文中的静态关键字?

来自分类Dev

在JNI上下文中存储C ++类

来自分类Dev

C#在同步上下文中运行异步任务

来自分类Dev

C 中上下文中的 Valgrind 错误

Related 相关文章

  1. 1

    为什么以下代码在C ++中是非法的

  2. 2

    C ++:为什么构造函数“ A(A a){}”是非法的?

  3. 3

    为什么本地函数定义在C ++中是非法的?

  4. 4

    指向未指定大小“(* p)[]”的数组的指针在C ++中是非法的,但在C中是合法的

  5. 5

    为什么我从C#代码中得到“名称Regex在当前上下文中不存在”?

  6. 6

    在C#中不安全代码的上下文中什么是不受信任的程序集

  7. 7

    在C#中不安全代码的上下文中什么是不受信任的程序集

  8. 8

    为什么用C展平多维数组是非法的?

  9. 9

    在c ++中'cout << cout'和'cout <<&cout'之间的区别?

  10. 10

    从循环外跳入循环内的标签是否是非法的C#代码?

  11. 11

    C ++:为什么Iter ++-> empty()合法?

  12. 12

    为什么int&r = 0是非法的而const int&r = 0是合法的?

  13. 13

    C ++ cout而不是fstream

  14. 14

    C ++ Boost Lambda Cout <<

  15. 15

    如何从C ++代码在特定QML项目的上下文中发射信号

  16. 16

    为什么cout不打印extern“ C”变量?

  17. 17

    为什么Horizontal Tab对C ++ cout不起作用?

  18. 18

    c++ 为什么 cout 在这里如此重要?

  19. 19

    以下代码在C中做什么?

  20. 20

    在C#中的程序集上下文中,激活作用域指的是什么?

  21. 21

    在C#泛型类型的上下文中,什么是类型标识?

  22. 22

    为什么以下代码使用`c ++ 03`而不是`c ++ 11`进行编译

  23. 23

    为什么以下代码使用`c ++ 03`而不是`c ++ 11`进行编译

  24. 24

    为什么在C#中这不合法?

  25. 25

    为什么这些定义在C语言中不合法?

  26. 26

    C ++:非类上下文中的静态关键字?

  27. 27

    在JNI上下文中存储C ++类

  28. 28

    C#在同步上下文中运行异步任务

  29. 29

    C 中上下文中的 Valgrind 错误

热门标签

归档