首页 新闻 会员 周边 捐助

c语言变量定义的时候如果不进行初始化会怎么样

0
[待解决问题]

不带初始化的定义:带有静态存储持续时间的变量会被隐式初始化为 NULL(所有字节的值都是 0),这种变量到底是什么变量;

;其他所有变量的初始值是未定义的,会有一个默认的初始值。

include <stdio.h>

int main()
{
/* 在申明变量的时候不对变量初始化 */
int i,j,k;
char c,ch;
float f,salary;
double d;
printf("默认整数为%d \n",i);
printf(c);
printf("默认浮点数为%f \n",f);
printf("默认浮点数为%f \n",d);
return 0;
}
以上代码运行的记过
默认整数为0
默认字符为
默认浮点数为0.000000
默认字符为0.000000
该程序中的c和char这两个变量是否就是上面说的变量,它的值为null;

c
Hssenberg的主页 Hssenberg | 菜鸟二级 | 园豆:208
提问于:2021-06-24 11:49
< >
分享
所有回答(2)
0

不是,静态变量是用static修饰的,普通的全局变量也是。你这个示例里面的变量都是局部变量,局部变量是存放在栈里面的,栈是不会进行初始化的。之所以打印出来也都是0,是因为你的程序就一个函数,栈很干净。
栈你可以理解成一块重复使用的区域,变量如果不初始化就可能使用到别人之前用过的地方。
你这个示例打印是0,可以理解成这块区域还是一张白纸。

jiajia_ | 园豆:234 (菜鸟二级) | 2021-06-24 15:42
0

主要看你们CPU,比如32单片机的话,会默认赋值0,如果是window下的某些编译器VC++6.0,就会赋值不确定的值,有可能很大也有可能很小,最好养成初始化赋值的习惯

Wx120 | 园豆:252 (菜鸟二级) | 2023-01-30 09:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册