unsigned char a;
for(a=32;a<128;a=a+1)
printf("%d='%c'\t",a,a);
return(0);
为什么我要放unsigned char?当我将它保留为 char 时,我执行了该程序,它给了我一个无限循环。 a=127时不应该停止吗?
最佳答案
char
表示它是 signed
还是 unsigned
取决于实现。这使得您的代码的行为实现定义。
它似乎在您的机器上已签名
。根据 C 标准,signed char
的最小值和最大值分别为 -127
和 +127
。任何大于 127
或小于 -127
的值都不能分配给 a
否则它会调用未定义的行为。
a
达到127
后,自增1,变为128
,a无法容纳signed char
变量,因此代码调用未定义的行为。
关于c - 在 C 中显示没有 unsigned char 的 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819716/