关于long long unsigned long long 范围问题

#include<stdio.h>
#include<limits.h>

void main()
{
long long ll;
unsigned long long ull;
printf("long long 最大值:%d\nlong long最小值:%d\n",LLONG_MAX,LLONG_MIN);
printf("nunsigned long long最大值:%u\nunsigned long long最小值%u", ULLONG_MAX, 0);

getchar();
}

为什么结果是错误的,哪里有问题

运行结果:
long long 最大值:-1
long long最小值:2147483647
nunsigned long long最大值:4294967295
unsigned long long最小值4294967295

#include<stdio.h>

#include<limits.h>

void main()

{

printf("long long 最大值:%lld\nlong long最小值:%lld\n",LLONG_MAX,LLONG_MIN);

printf("nunsigned long long最大值:%llu\nunsigned long long最小值:%llu", ULLONG_MAX, 0);

getchar();

}

追问

为毛按照你的那个也是不对的结果,难道是编译器的问题?

我懂了好的谢谢你。意思是long long类型要用%lld 输出对吧?  long 类型要用%ld 类型输出吗?

追答

除了最后一个其他都是对的吧,应该是编译器的问题,估计不能直接写0

温馨提示:答案为网友推荐,仅供参考