在任何编程语言中,如果我设置变量:
name = 'Jhon';
因此,它将在 RAM 中占用 4 个字节的空间。但如果:
name = '';
它仍然会在 RAM
中保留一个空白区域,或者会出现什么情况?
最佳答案
对于 C 语言,如果不需要存储来实现程序的可观察行为,则允许编译器不留出存储。例如,如果您有一个类似的程序
int main( void )
{
int x;
int y;
y = some_value();
printf( "y = %d\n", y );
return 0;
}
变量x
从未被引用,并且在y
的计算或显示中不起任何作用(我们假设它对some_value()不可见)
)。在这种情况下,编译器可以自由地不为其留出任何空间。
类似地,在类似的程序中
int main( void )
{
int y = 0;
printf( "y = %d\n", y );
return 0;
}
编译器可以确定这与编写完全相同
int main( void )
{
printf( "y = 0\n" );
return 0;
}
根本不用为 y
留出空间。
不同的语言有不同的规则;如果您好奇,请询问该特定语言。
关于c - 持有空值的变量是否也占用内存中的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53732635/