2011-08-16 38 views

回答

10

指针可以重新分配,数组不能。

const char* ptr = "Hello World!"; 
const char arr[] = "Hello World!"; 

ptr = "Goodbye"; // okay 
arr = "Goodbye"; // illegal 

而且,正如其他人所说:

​​
+0

+1我认为这是给出的问题更合适的答案 – Chad

5

首先是一个指针。
其次是一个数组。

系统中所有指针的大小将是相同的。
第二次声明中数组的大小与字符串文字的大小加上\0相同。

您可以将第一个指针指向同一类型的任何其他变量。您不能重新分配数组。

2

第一个是指针:sizeof(myVar) == sizeof(void*)。它是不恒定的,所以你可以修改它:myVar++。第二个是数组:sizeof(myVar) == 13