相关疑难解决方法(0)

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

在C中,可以在声明中使用字符串文字,如下所示:

char s[] = "hello";
Run Code Online (Sandbox Code Playgroud)

或者像这样:

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

那么区别是什么呢?我想知道在编译和运行时的存储持续时间实际发生了什么.

c string constants char

495
推荐指数
6
解决办法
33万
查看次数

字符串文字是常量吗?

如果我将一个字符串文字分配给a char*,即使使用了许多迂腐选项(-Wall -W -pedantic -std=c99),GCC和Clang都不会抱怨:

char *foo = "bar";
Run Code Online (Sandbox Code Playgroud)

而他们(当然)不要抱怨,如果我分配const char*char*.

这是否意味着字符串文字被认为是char*类型?他们不应该const char*吗?如果它们被修改,它就不是定义的行为!

和(一个不相关的问题)命令行参数(即:):argv它被认为是一个字符串文字数组?

c string const constants literals

22
推荐指数
4
解决办法
7166
查看次数

标签 统计

c ×2

constants ×2

string ×2

char ×1

const ×1

literals ×1