关于char*和char []基础知识的问题

mis*_*ter 2 c++ char

可能重复:
C中的char s []和char*s有什么区别?
char a [] ="string"之间的区别; char*p ="string";

首先,我想问一下我在哪里可以学习char*和char []的所有基础知识.

大多数时候,我发现自己在如何比较和如何申报方面苦苦挣扎.

例1:

   char *test = "hello world";
Run Code Online (Sandbox Code Playgroud)

这将在编译时产生以下警告:

 warning: deprecated conversion from string constant to ‘char*’
Run Code Online (Sandbox Code Playgroud)

例2:

   vector<char*> test2;
   test2.push_back("hello world");
Run Code Online (Sandbox Code Playgroud)

这将产生复制字符串的错误.

所以我想出的解决方案是:

(它是否正确?)

   vector<char*> test3;
   char *str1 = "hello world"
   test3.push_back(str1);
Run Code Online (Sandbox Code Playgroud)

提前致谢!:)

============================================

这里的人提供了两个好的读物:

char s []和char*s有什么区别?

char a [] ="string"之间的区别; char*p ="string";

bam*_*s53 6

您的问题"我在哪里可以学习char*和char []的所有基础知识",可能过于笼统,但您可以尝试阅读C++规范.

修改示例1,将其更改为

char const *test = "hello world";
Run Code Online (Sandbox Code Playgroud)

修改示例2,将其更改为

vector<std::string> test2;
test2.push_back("hello world");
Run Code Online (Sandbox Code Playgroud)

或者,如果你真的想要一个非拥有指针到c字符串的向量:

vector<char const *> test2;
test2.push_back("hello world");
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

257 次

最近记录:

13 年,9 月 前