c - 为什么我没有初始化它时值不为零?

标签 c printing initialization printf

<分区>

这是我的代码:

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 的值应该是。

最佳答案

在 C 中,变量分配在两个位置之一:全局或堆栈上。根据定义,如果没有赋值,全局变量被初始化为0;堆栈变量不是。

int willBeZero;

void Fn(void) {
    int uninit;
    int four = 4;
} // Fn(void)

那么如果一个栈变量没有被初始化,它会取什么值呢?该内存位置的堆栈上发生了什么,可能是 0

如果你想要一个变量中的特定值,你必须把它放在那里。

关于c - 为什么我没有初始化它时值不为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37904091/

相关文章:

从文本文件中一个一个地计算字符

c - "Makes Pointer from Integer without a Cast"- 如何满足 GCC?

html - Internet Explorer 9 中的 SVG 打印

java - 静态类初始化什么时候发生?

java - 当初始化发生在 try/catch 中时,Eclipse 给出未初始化的编译时错误

c - 使用多个自定义信号处理程序在程序中阻止 SIGCHILD

c - GCC 的 MSVC __asm 关键字是什么?

c# - 打印出功能隐藏的元素

css - 使用 CSS 强制打印分页符

c++ - 2种模板类型之间的转换