来自无类型语言 (PHP) 我对 C 中的数据类型有点困惑。我面临以下奇怪的行为。
//First case
unsigned int a;
a = -1;
printf("a = %u", a); //Outputs a strange number, no problem here
//Second case
unsigned int a;
a = -1;
printf("a = %d", a); //Outputs -1
我不明白的是,a
在我们明确表示它之后,它是如何“包含”一个有符号值的unsigned
?
如何仅在第二种情况下格式化输出呢?