指针和数组之间的区别

时间:2011-02-22 13:01:34

标签: c++ c

  

可能重复:
  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";

3 个答案:

答案 0 :(得分:7)

当你声明char p []时,你声明了一个chars数组(可以读取和写入),并且这个数组被初始化为某些字符序列,即“T​​his is test”被复制到元素在这个数组中。

当你声明char * p时,你声明一个直接指向某个常量文字的指针 - 而不是副本。这些只能被阅读。

答案 1 :(得分:5)

a是一个数组,这意味着您可以使用sizeof()上的a运算符,sizeof(a)/sizeof(a[0])等于数组长度。

p是指向常量内存区域的指针。

答案 2 :(得分:3)

1 - 指向包含“This is test \ 0”字符串的程序的只读部分的指针。

2 - 使用上述内容初始化的内存(13字节)。