【问题标题】:Initialize a c-string in C++11? [duplicate]在 C++11 中初始化一个 c 字符串? [复制]
【发布时间】:2015-08-28 20:55:50
【问题描述】:

如何在 C++11 中初始化 c 字符串?

我试过了:

char* foo = {"bar"};

但我明白了:

ISO C++11 does not allow conversion from string literal to 'char *

【问题讨论】:

    标签: c++ string c++11


    【解决方案1】:

    因为它必须是指向const的指针:

    const char* foo = "bar";
    

    在 C++11 之前,您可以将 foo 简单地设为 char*,尽管自 C++03 以来已弃用。但是 C++11 删除了弃用并简单地使其非法。

    【讨论】:

      【解决方案2】:

      正确的做法是;

      char const* foo = {"bar"};
      //   ^^^^^ added const
      

      不推荐使用旧的 C 样式(非 const),现在已从 C++11 中删除。

      【讨论】:

      • char const 还是 const char?
      • 两者都正确,const可以在char之前或之后。这只是我喜欢的风格。
      • 哦,我不知道,谢谢!
      猜你喜欢
      • 2012-09-27
      • 2016-05-02
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多