关于MDK函数内定义变量的相关问题,我发现在函数里直接定义一个变量,比如:int var1; //那么即时不进行初始化,那么它打印出来的值是0,也就是MDK默认会对其赋0值操作。
但是:-----------------当我在函数里定义一个结构体变量时(内部有一个成员是:int var2;),比如:
#include "stm32f4xx.h"
#include "sys.h"
#include "uart.h"
tpyedef struct { //这里声明一个结构体数据类型
int var2;
char ch1;
}Var_struct;
int main(void){
Var_struct Var_structure; //定义一个结构体变量
int var1; //定义一个整形变量
printf("打印出来的var1变量的值为:%d
",var1); //值为0 printf("打印出来的结构体成员变量的值为:%d
",Var_structure.var2); //值为随机值。 ??这里为什么会是随机值啊?
}
我发现打印出来的结构体变量成员值printf("打印出来的结构体成员变量的值为:%d
",Var_structure.var2);时,这个Var_structure.var2为什么居然是一个随机值?
我的问题是定义的变量与结构体变量不都是在函数里定义的吗?为什么一个默认被赋为0,而另一个结构体中的成员变量同样是int类型的,居然是一个随机值?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>