这是我的代码:
int main(){
int age;
int height = 72;
//
double blab = (10/23242^4);
printf("I am %d years old.\n",age);
printf("I am %d inches tall.\n",height);
return 0;
}
使用blab
变量使age
的值为随机数。当我擦除这个变量时,值为零,因为我认为age
的值应该是。
答案 0 :(得分:3)
在C中,变量分配在两个地方之一:全局或堆栈。根据定义,如果没有赋值,则全局变量初始化为0
;堆栈变量不是。
int willBeZero;
void Fn(void) {
int uninit;
int four = 4;
} // Fn(void)
因此,如果堆栈变量未初始化,它需要什么值?在该内存位置堆栈上发生的事情可能是0
。
如果您想在变量中使用特定值,则必须将其放在那里。
答案 1 :(得分:2)
未初始化的本地(非静态)变量具有不确定(以及看似随机)的值。在没有初始化的情况下使用它们会导致未定义的行为。