%ld的参数形式

猪小烧 2007-03-26 12:34:33
{
unsigned int a=65534;
printf("%d,%ld",a,a);
}
输出的值是-2和-65538

想知道-65538是怎么来的

%ld的参数取值范围是多少?是什么型的参数形式?
...全文
229 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
0黄瓜0 2007-03-26
  • 打赏
  • 举报
回复

unsigned int a=65534;
lont int m=a;//中间赋值一下,应该是正确结果
printf("%d,%ld",a,m);
0黄瓜0 2007-03-26
  • 打赏
  • 举报
回复
因为你的平台int和long int的字长不同,所以把一个int按long int输出是错误的做法.
zhaoyg1986 2007-03-26
  • 打赏
  • 举报
回复
-65538是数据溢出的结果
你可以使用sizeof(long)来确定他是几个字节,知道字节了也自然知道他是几位了
猪小烧 2007-03-26
  • 打赏
  • 举报
回复
A_B_C_ABC(黄瓜@YouCanDoIt)

谢谢你

已经理解了

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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