为什么同样是int类型 初始值却不同
连续运行两次,初始值也发生了变化
究竟是什么原因?
函数中定义局部变量没有赋值时 int n;,n变量的初始值是随机不确定的
你在定义变量时,给变量赋值一个初始值即可
int n = 0;
如果是结构体,不能在定义结构体中赋值初始值,要在定义结构体变量时再赋值初始值
#include<stdio.h>
struct Stu
{
int num;
int age;
};
int main()
{
struct Stu s = {2,5}; //要在定义结构体变量时再赋值初始值
printf("%d\n", s.num);
printf("%d\n", s.age);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
未初始化使用变量,是随机值,每次都不一样的。
int变量未初始化的默认初值,和变量的类型有关。
1 局部变量,在未初始化情况下,初值为随机值。C规范对该初值并没有做规定,具体实现由编译器决定。如VC/VS等编译器,会将初始值值为0xCCCCCCCC, 而GCC等编译器则是不可预知的随机值。
2 静态局部变量,即带static修饰的局部变量。
全局变量和静态全局变量,即定义在函数外,不属于任何一个函数的变量。
这几种默认初值为0.
在定义变量时,系统会自动给这个变量一块地址空间。在没有赋值前,这个变量的内容就是这块地址空间留下的内容。所以,几次运行变量赋值前的内容可能会不一样