C语言,字符数组初始化的简单有关问题
C语言,字符数组初始化的简单问题
原来代码如下:
unsigned char str[2;
str[2]={“ab”};
修改后如下:
unsigned char str[2]={“ab”};
问题:
原来的代码调试时输出为乱麻
修改后则正常。为什么初始化必须要在定义时完成呢?而不能像int一类在定义之后不初始化?找了几本书,都没有讲到这个问题
------解决方案--------------------
数组只能在定义的时候初始化。
unsigned char str[2];
str[2]={“ab”};
这时的str[2]是地址str+2内的值
原来代码如下:
unsigned char str[2;
str[2]={“ab”};
修改后如下:
unsigned char str[2]={“ab”};
问题:
原来的代码调试时输出为乱麻
修改后则正常。为什么初始化必须要在定义时完成呢?而不能像int一类在定义之后不初始化?找了几本书,都没有讲到这个问题
------解决方案--------------------
数组只能在定义的时候初始化。
unsigned char str[2];
str[2]={“ab”};
这时的str[2]是地址str+2内的值