在C语言中,定义了一个char 类型的变量,系统会自动给他付初值吗?

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:56:48
在C语言中,定义了一个char 类型的变量,系统会自动给他付初值吗?比如char n;在之后的程序中若没事先给n一个初值,那么n++的值是多少
我经常看到一些用C编的单片机程序就没有给char变量初值
这是什么原因?

输出为无意义的数
只定义变量char n;系统会在内存中为其分配一个字节的内存地址,因为char占用一个字节
当你不赋值而输出n时,系统会在n所在的内存地址里去取值,如果那个内存里有其他数据没清空的话,就会输出,所以为无意义的事
建议先赋值再使用

若n 有赋值的话 在内存中存储n中的数据相应的ASCII码 比如说
char n=a;这时 内存存储为 97(十进制表示,其实内存应该为二进制), 也就时说,如果
char n=97;这时 输出n时 还是a
所以 n++后 为b

对于这种问题,你还是自己写个小程序,调试一下比较好啊。其实调试的时候是很容易看出来的
我用的vs2008,调试的时候发现,程序可以通过编译,但是定义后n中是以个随意的数,当让其执行n++时,程序就会报错了,说n为赋值

在不同的编译环境下,会有不同的结果。通常情况下,是随机产生一个初值……

根据所使用的编译软件和电脑的不同,输出都可能是不相同的数,也就是一个随机产生一个初值吧……