大家帮看看这个C语言有关问题小弟我不太懂

大家帮看看这个C语言问题我不太懂C/C++ codeint main(){unsigned char a[3] for(int i -1i 3++i)a[

大家帮看看这个C语言问题我不太懂

C/C++ code
int main(){    unsigned char a[3] ;            for(int i = -1;i < 3;++i)        a[i+1] = -1-i;            printf("%u%u%u",a[0],a[1],a[2]);            return 0;}

输出结果为什么是0,255,254.谢谢解释一下!

[解决办法]
因为你输出是按%u输出的,是无符号数。把前面的负号及补码数位都当正数据了。