数组一旦声明,就不能再给它赋值,但可以给指针赋值
首先要明白数组名是什么,它是一个指针,类型为所定义的数组的类型,而这个指针与普通定义的指针的最大区别就是它是常指针,意思就是它的值不能被改变,所以不能作为左值被赋值
int a[3] = {1,2,3};
int b[3];
int* c;
b = a; // 数组名不能作为左值
c = a; // 指针可以作为左值
用 sizeof 运算符可以计算数组变量的数组大小,但指针指向数组时,只能计算出指针本身大小
int a[3]={2,3,4};
int* b = a;
cout<<sizeof(a)<<endl; // 12
cout<<sizeof(b)<<endl; // 8