![](/img/trans.png)
[英]Default values of int when not initialized in c. why do i get different outputs?
[英]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
变量被初始化为0
或NULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.