const char myVar* vs. const char myVar[]

  • 本文关键字:const myVar char vs c++
  • 更新时间 :
  • 英文 :


可能重复:
使用字符指针和字符数组的区别

有什么区别

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

此外,正如其他人所说:

sizeof(ptr) == size of a pointer, usually 4 or 8
sizeof(arr) == number of characters + 1 for null terminator

第一个是指针
第二个是数组。

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

您可以将第一个指针指向相同类型的任何其他变量
无法重新分配阵列。

第一个是指针:sizeof(myVar) == sizeof(void*)。它是非常量,因此您可以修改它:myVar++

第二个是数组:sizeof(myVar) == 13

最新更新