for(x=(strlen(d)-1);x>=0;x--) printf("%c",d[x]);为什么会一直输出乱码?

skyblackspring 2010-05-22 06:17:42
for(x=(strlen(d)-1);x>=0;x--)
printf("%c",d[x]);


调试时发现当x=0时,x--执行后x=4294967495,然后就开始不断地输出乱码,这事怎么回事?
请指教
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dych20042577 2010-05-23
  • 打赏
  • 举报
回复
看来只要有一个人回答了,后面就不用讲了。。。
ArtiFly2000 2010-05-22
  • 打赏
  • 举报
回复
所以说,没事不要用无符号数,这地方就是个大坑
huanmie_09 2010-05-22
  • 打赏
  • 举报
回复
1楼正解!
ctwoz 2010-05-22
  • 打赏
  • 举报
回复
如果用的是 unsigned x ,那么 x >= 0 永远是成立的。。。
周靖峰 2010-05-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hpsmouse 的回复:]
你用的是 unsigned x 吧,那么 x >= 0 永远是成立的,后面自行想象~
[/Quote]
应该是这样
dych20042577 2010-05-22
  • 打赏
  • 举报
回复
你的x是什么数据类型?如果是无符号数(unsigned)就会出现你所说的问题。。。
暗黑帝国 2010-05-22
  • 打赏
  • 举报
回复
strlen(d)=0了,d没有初始化
2010-05-22
  • 打赏
  • 举报
回复
你用的是 unsigned x 吧,那么 x >= 0 永远是成立的,后面自行想象~

69,373

社区成员

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

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