【发布时间】:2021-09-21 06:53:10
【问题描述】:
这是C程序:
int main(void)
{
unsigned long long int number = 4294967295;
printf("unsigned long long int size is: %d byte \n", sizeof(unsigned long long int));
printf("this value is: %d\n", number);
return 0;
}
这是输出:
unsigned long long int size is: 8 byte
this value is: -1
为什么输出是 -1 而不是 4294967295
【问题讨论】:
-
查找 printf 格式字符串的文档并具体检查
%d的含义 -
问:为什么输出是-1而不是4294967295? A:因为你用
%d打印的!不幸的是,不同的编译器对“unsigned long long”有不同的“printf”格式字符串:stackoverflow.com/questions/2844
标签: c