繁体   English   中英

当你创建一个指针时,为什么所有变量突然都被初始化为随机值?

[英]When you create a pointer, why do all variables suddenly get initialized to random values?

int main() {
    int x;
    printf("%d", x);
    
    return 0;
}

无论我执行多少次,这最终都会打印 0。 但是,如果我最终创建了一个指针并将其指向x ,或者实际上是任何变量……

int main() {
    // Write C code here
    int x;
    printf("%d", x);


    int *z = &x;
    
    return 0;
}

它打印随机 integer 值,如25345 这个指针在哪里初始化并不重要,像int这样的数据类型不再默认初始化为 0。

除非显式初始化,否则像x这样的auto变量的初始值是不确定的 - 它可能是0 ,可能是1234 ,可能是-63124 ,甚至可能是陷阱表示。

为变量分配了空间,但该空间保留了最后写入的任何位模式。

static变量被初始化为0NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM