简单C语言我糊涂了
看图,为什么输出不是ab?
回答:
字符串需要有结束符\0
(占用一个字节), 所以你需要将bits[2]
改成bits[3]
.
以当前的bit[2]
解释原因:
打印字符串会从指定内存一个个字节打印, 直到遇到\0
.
因为你只有两个字节, 没有内存存放结束符\0
, 不能保证bits + 2
位置的内存值就是\0
, 所以会继续打印, 直到遇到\0
为止.
又因为bits + 2
及之后内存的不确定性, 所以你每次的打印结果通常都不一样!
回答:
没有结束这个char数组,会把内存后面的bit也打印出来
回答:
C的字符串是以\0结尾的。
如果是这种的写法的话,就不会有问题了
unsigned char bits[3] = "ab\0";
以上是 简单C语言我糊涂了 的全部内容, 来源链接: utcz.com/p/194086.html