我无法确定以下程序如何输出6和-250。
#include<stdio.h>
int main()
{
unsigned char p=-250;
printf("%d",p);
unsigned int p1=-250;
printf("%d",p1);
return 0;
}
作为一个无符号整数,它只输出正值。p值如何输出6请帮助我理解。
最佳答案
printf
不是类型安全的它会打印您要求它打印的任何内容,并且%d
会显示“有符号整数”。您有责任提供各种类型的配套产品。因为unsigned char
只有8位宽,所以文本-250会环绕到+6,当被解释为有符号整数时,它仍然是+6注意,当通过变量参数传递时,char
和short int
(以及它们的有符号/无符号对应项)都被提升为int
-类型。
关于c - -250打印为6,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7139658/