可能重复:
Difference between using character pointers and character arrays为const char * myVar的对比为const char myVar的[]
有什么区别:
const char* myVar = "Hello World!";
const char myVar[] = "Hello World!";
如果有一个?
可能重复:
Difference between using character pointers and character arrays为const char * myVar的对比为const char myVar的[]
有什么区别:
const char* myVar = "Hello World!";
const char myVar[] = "Hello World!";
如果有一个?
指针可以重新分配,数组不能。
const char* ptr = "Hello World!";
const char arr[] = "Hello World!";
ptr = "Goodbye"; // okay
arr = "Goodbye"; // illegal
而且,正如其他人所说:
首先是一个指针。
其次是一个数组。
系统中所有指针的大小将是相同的。
第二次声明中数组的大小与字符串文字的大小加上\0
相同。
您可以将第一个指针指向同一类型的任何其他变量。您不能重新分配数组。
第一个是指针:sizeof(myVar) == sizeof(void*)
。它是不恒定的,所以你可以修改它:myVar++
。第二个是数组:sizeof(myVar) == 13
。
+1我认为这是给出的问题更合适的答案 – Chad