【发布时间】:2013-10-02 09:09:54
【问题描述】:
我有 2 个问题...(我正在学习 C,这可能是愚蠢的问题。抱歉)
-
根据How to declare strings in C 和大多数书籍,他们总是说声明一个字符串,即使您通过说来分配内存
char p2[] = "String";
我的问题是,到底有没有声明一个字符串?
-
根据https://stackoverflow.com/a/1704433/1814023,在这样的示例中,
char s[]="hello";
被放置在只读区域,然后复制到数组中。在 C 中这样打印字符串的地址是否有效?
printf("%p\n", &"Hello There"); // I tried, it prints some address
通过这样做
printf("%p\n", &"Hello There");
printf("%p\n", &"Hello There");
它正在打印相同的地址。感觉是,它应该打印不同的地址。编译器在这里做了一些优化吗?
【问题讨论】: