在C中,可以在声明中使用字符串文字,如下所示:
char s[] = "hello";
Run Code Online (Sandbox Code Playgroud)
或者像这样:
char *s = "hello";
Run Code Online (Sandbox Code Playgroud)
那么区别是什么呢?我想知道在编译和运行时的存储持续时间实际发生了什么.
可能重复:
内存分配char*和char []
任何人都可以解释我这些代码行之间的区别
char *p = "String";
char p2[] = "String";
char p3[7] = "String";
Run Code Online (Sandbox Code Playgroud)
我应该在什么情况下使用以上各项?