一个奇怪的问题
今天调试一个程序的时候,发现有一条语句除了问题:一个unsigned char数组,8个元素,在程序中用scanf按16进制的格式读取数字进每一个元素(读取的数保证不大于FF),但是读取到第6或者第七个元素时,代表下标的变量就会被置0,导致程序无限循环。原本以为是溢出,但是无论数组开多大都不行,输入的数全为1不行,变量声明间又插进几个新变量也不行。不过先读取到一个int再赋值就可以,或者直接把数组声明改成int。但是理论上原先的做法没有问题啊,为什么会这样呢?