C样式字符数组 - 我们存储多少字节?

Car*_*ndo 4 c++ arrays byte char

char firstName[32];
Run Code Online (Sandbox Code Playgroud)

我知道每个char占用内存中的1个字节.那么上面占用了32个字节的内存吗?

我错过了一个占用内存的指针,还是只有32个字节?

Jam*_*ran 11

不,这占用了大约32个字节的内存.没有指针.

这通常是一个混乱的领域,因为数组名称默默地"衰变"为"char*"

char* fname = firstName;
Run Code Online (Sandbox Code Playgroud)

所以,firstName可能是类型const char*,但它本身不是char*变量.它完全像:

 int x = 5;
Run Code Online (Sandbox Code Playgroud)

x是int变量并占用空间. 5另一方面,只是int类型的常量值.它没有空间; 这只是一个价值.