可能重复:
Difference between char *str=“STRING” and char str[] = “STRING” ?
C: differences between pointer and array
您好,
有人可以告诉我下面的陈述之间的区别吗?
char *p = "This is a test";
char a[] = "This is a test";
答案 0 :(得分:7)
当你声明char p []时,你声明了一个chars数组(可以读取和写入),并且这个数组被初始化为某些字符序列,即“This is test”被复制到元素在这个数组中。
当你声明char * p时,你声明一个直接指向某个常量文字的指针 - 而不是副本。这些只能被阅读。
答案 1 :(得分:5)
a
是一个数组,这意味着您可以使用sizeof()
上的a
运算符,sizeof(a)/sizeof(a[0])
等于数组长度。
p
是指向常量内存区域的指针。
答案 2 :(得分:3)
1 - 指向包含“This is test \ 0”字符串的程序的只读部分的指针。
2 - 使用上述内容初始化的内存(13字节)。