linux编程,为负值的uint类型的默认值是2吗?

今天在测试的时候,发现一个设备的id值回复一直是2,打印调试语句,初始化之后直接打印,id的值就是2,而且一直没变过,难道id值不应该是随机的吗

uint id,state;
printf(" id is %d\n\n",id);

图片说明

默认值是随机的,这里的随机不是说每次不一样,而是无法确定。一直都是2也是正常。

数据地址是随机分配的,以前地址是什么值就会输出什么值。所以要初始化

是不确定的,如果你把程序运行的环境重新启动,这个值可能会变成另一个未知数奥!
改变这种问题,1、初始化 2、static uint id,state; 3、变量设置为全局变量