首先说明变量名是不占空间的。
变量:用来标识一块内存空间,这块内存区域的值一般是可以被该的。
而const常量通常限定这一块内存区域的值是不可被更改的。
变量名:只是一个标识符,并不占内存空间。在c的编译器实现中,它只是根据索引映射到了变量值该类型的内存空间(地址)。
假设我们有以下定义:int a;编译器会做如下:它会为程序预留4字节的空间(32位机器),并把我们的变量名a保存进符号表,并用这个符号表的索引对应实际的内存空间。这块实际的内存空间存储着这个变量的值。
简单的说,变量名代表地址,而值代表这块地址存储的值。