关于长整数的L

superheasy 2011-02-22 09:54:36
我们知道,数字后面加L,标示长整数;如1234L;
但在一般的c程序中,加不加这个L有什么区别呢???

如 int a = 1234;
及 int a = 1234L; ??
...全文
346 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizard_tiger 2011-02-24
  • 打赏
  • 举报
回复
不加L表示是整型常量,
加上L表示是长整型常量。
chenjkai1988 2011-02-23
  • 打赏
  • 举报
回复
ANSI C 标准规定int型只要不比long型长就可以了。对于不同的平台是不同的,楼主可以用sizeof(int)和sizeof(long int)来判断所用平台的具体情况。
無_1024 2011-02-23
  • 打赏
  • 举报
回复
对于我们使用的win32是没什么变化的
漫步者、 2011-02-23
  • 打赏
  • 举报
回复
[code=C]/C++
int a = 1234;//1234整型
int a = 1234L; //1234long型
//不管如何,都是被int转换了,所以在这里有没有是没有关系,
//但是1234l和1234的区别在于类型不一样,取值范围不同。
[/code]
ericming200409 2011-02-23
  • 打赏
  • 举报
回复
举个例子:
[code=C]/C++
32767*32767; // 结果错误,因为结果超出了int范围
32767L*32767; // 结果正确
[/code]
ericming200409 2011-02-23
  • 打赏
  • 举报
回复
举个例子:
[code=C]/C++
32767*32767; // 结果错误,因为结果超出了int范围
32767L*32767; // 结果正确
[/code]
proghua 2011-02-23
  • 打赏
  • 举报
回复
在32位系统下,一般ILP32,即整型、长整型、指针是32位的,而64位系统下一般LP64,即整型32位,长整型和指针64位
justkk 2011-02-23
  • 打赏
  • 举报
回复
对于64位应用程序而言,long通常是8字节,表示的数值范围远远大于int

long a=4294967299; //报错,数值超出int的表示范围
long a=4294967299L; //ok
proghua 2011-02-23
  • 打赏
  • 举报
回复
类型不一样
字面值1234类型是int,而字面值1234L类型是long
在Win32下int和long都是32位的
canican 2011-02-23
  • 打赏
  • 举报
回复
就像你去饭店点碗面,要(1234)大腕,
就像楼上说的,有的饭店你点了一个大大碗,出来都是大腕而已
昵称很不好取 2011-02-22
  • 打赏
  • 举报
回复
对于win32平台是一样的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧