printf("%ld",3)的结果为什么不是3?

yyydeyangzi 2008-10-12 10:45:21
printf("%ld",3)的结果为什么不是3?
...全文
202 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aozhi 2008-10-12
  • 打赏
  • 举报
回复
注意常量的使用。
printf("%ld",3L);试试。
matrixcl 2008-10-12
  • 打赏
  • 举报
回复
楼主和2楼都在乱说

1.printf("%ld",3)一点问题都没有

2.printf("3");正确,但printf("%ld",3)也没错
aaa7782814 2008-10-12
  • 打赏
  • 举报
回复
你要打印3,直接printf("3");就好了
格式控制符后面的应该要是地址,变量也是有个地址的
Fighting Horse 2008-10-12
  • 打赏
  • 举报
回复
怎么会呢,什么环境下啊
ForestDB 2008-10-12
  • 打赏
  • 举报
回复
warning: long int format, int arg (arg 2)
这里是gcc的警告,gcc也正确的打出了3.

看看LZ用的什么编译器,然后看看生成的汇编码,初步估计是编译器没有能力正确的提升int类型,从而把3和内存中另一个int组合成了long int再打印.
xuhongwu 2008-10-12
  • 打赏
  • 举报
回复
没打印出3,打印出什么呢?这个对解决问题很重要.
frank_ll 2008-10-12
  • 打赏
  • 举报
回复
看你的平台,你是不是64位机
如果是,那么有可能出现这种情况
lyaqys 2008-10-12
  • 打赏
  • 举报
回复
gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
没有问题。。应该是你编译器的问题吧。。

69,368

社区成员

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

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