#include <stdio.h>
#include <stdlib.h>
int main()
{
printf ("sizeof(int)=%d/n",sizeof(int));
printf ("sizeof(short)=%d/n",sizeof(short));
printf ("sizeof(long)=%d/n",sizeof(long));
printf ("sizeof(long long)=%d/n",sizeof(long long));
printf ("sizeof(float)=%d/n",sizeof(float));
printf ("sizeof(double)=%d/n",sizeof(double));
printf ("sizeof(long double)=%d/n",sizeof(long double));
system ("pause");
return 0;
}
运行这一段代码的结果是
课本上说的是
float->%f, double->%lf ,long double->%Lf
但我觉得,现在的一些编译器基本忽略了这个细节。(或者是没有提示警告)
之后,再扩充一些东西吧。
对于整形常量
u或U 表示 unsigned
l 或L 表示 long
ul 或UL 表示 unsigned long
ll 或LL 表示 long long
ull 或ULL 表示 unsigned long long
对于浮点常量
f或F表示 float
l或L 表示 long double
然后你再看一下这段代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf ("sizeof(11)=%d/n",sizeof(11));
printf ("sizeof(11u)=%d/n",sizeof(11u));
printf ("sizeof(11l)=%d/n",sizeof(11l));
printf ("sizeof(11ul)=%d/n",sizeof(11ul));
printf ("sizeof(11ll)=%d/n",sizeof(11ll));
printf ("sizeof(11ull)=%d/n",sizeof(11ull));
printf ("sizeof(11.0)=%d/n",sizeof(11.0));
printf ("sizeof(11.0f)=%d/n",sizeof(11.0f));
printf ("sizeof(11.0l)=%d/n",sizeof(11.0l));
system ("pause");
return 0;
}
上面那个结果可以看出 11 默认是 int sizeof=4;
11.0 默认是 double sizeof=8;