int x;x=1900L;printf("x=%d",x);为什么不报错,还能打印结果??

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:48:23
main()
{
int x;x=1900L;printf("x=%d",x);
getch();
}
我刚学c语言,没见过x=1900L,请问是什么意思哦?

L就是表示这是一个长整型哈,如果你用VC的新版本的话,那么long和int的范围是一样的,所以是不会报错也不会警告的。
同样的道理,我们可以这样指示一个浮点型如:
float i = 1.03f;
如果这样的话:float i = 1.03;这里的1.03会被默认识别为double..

有错吗?LZ是否以为1900L有错?恩。。看书去吧

1900-》1900L:转化为长整形没益处不会报错
x=1900L 1900L-》1900 在整形范围内没益处不会报错

x=1900L 长整型 1900
L -- 英文 long

int x;x=1900L;printf("x=%d",x);

没错,所以不报错,还能打印结果。
printf("x=%d",x); 或
long int x;x=1900L;
printf("x=%ld",x);

VC++ 编译器能正确处理。声明 long int 或 int 都没问题。