【发布时间】:2014-01-30 17:12:43
【问题描述】:
我在某处读到以下几行:-
char *p = "string literal";
如果我尝试为 p[i] 分配新值,我的程序会崩溃。
A:-它变成了一个未命名的
static array of characters,这个未命名的数组可能存储在只读内存中,因此不一定可以修改。在表达式上下文中,数组像往常一样立即转换为指针(参见第 6 节),因此声明初始化 p 以指向未命名数组的第一个元素。
我知道static 做了什么,但我不明白上面几行中的以下内容
static array of characters.
【问题讨论】:
-
链接到 OP:“某处”c-faq.com/decl/strlitinit.html
-
Kelvin 在这里阅读了前两点 static
-
@GrijeshChauhan : 也许我也很困惑,因为我以为作者指的是
static,但他指的是英文static。 -
@kevingomes 是的作者在该特定行中引用了静态的英文含义。
-
@GrijeshChauhan :我也对文字感到困惑。请告诉我字面量的含义以及它与 char 数组有何不同
标签: c arrays string pointers static