Array
数组是一段连续的、元素类型完全相同的内存区域,并且他是一个”非一等公民“
连续内存(Contiguous Memory)
int a[5];
内存布局一定是
a[0] a[1] a[2] a[3] a[4]
- 每个元素大小 =
sizeof(int) a[i]的地址 =&a[0] + i * sizeof(int)
这不是”实现细节“,而是语言规范保证的
数组不是”普通对象“
int a[5];
a不是指针a不能被赋值a不能作为返回值sizeof(a)!=sizeof(int*)
数组是语法级别的构造,不是运行时对象