变量名本身并不占用内存。在C或C++中,变量名只是一个标识符,用于标识一块内存空间。换句话说int a;中的变量名a只是个代号,只起让人能看明白代码的作用,但是编译器编译时就不用这个代号(计算机也认不得这个代号),而是将变量名转换成变量地址(机器能看懂的代号),并将实际的内存空间存储在代码段或数据段中。在运行期间,变量名不再占用内存,只有实际的数据值存储在相应的内存地址中。
但是,“变量地址”是要占用内存的。比如int a=12; 变量名本身不占内存,但编译器翻译后的“变量地址”是占内存的,因为地址本身也是数据,这个地址存放在程序区;而12这个数据存放在数据区。