while(*str)与while(*str!='\0')与while(*str!=0)的区别

abner_86 2012-09-18 02:40:11
如题
...全文
872 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolomg 2012-09-18
  • 打赏
  • 举报
回复
按我的理解是一样的
cao_julians 2012-09-18
  • 打赏
  • 举报
回复 2
效果相同,但是处理过程不一样
while(*str)----将*str直接按逻辑值测试
while(*str!='\0')----将*str与'\0'按char字符比较,再得逻辑值
while(*str!=0)----将*str与0按int整数比较,再得逻辑值
========================
编码规范要求用第二种形式。
shiter 2012-09-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
意义都一样,不过while(*str!='\0')最符合逻辑。
[/Quote]

顶,这个好
timidsmile 2012-09-18
  • 打赏
  • 举报
回复
啊 最常用第一个了。。。。
巴山独钓 2012-09-18
  • 打赏
  • 举报
回复
区别主要在于:看着不一样,不过这个存在潜在bug,小心str=NULL
ouyh12345 2012-09-18
  • 打赏
  • 举报
回复
如果str是char *,那这三个是一样的
图灵狗 2012-09-18
  • 打赏
  • 举报
回复
意义都一样,不过while(*str!='\0')最符合逻辑。
未注销 2012-09-18
  • 打赏
  • 举报
回复
意义是一样的。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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