鱼C论坛

 找回密码
 立即注册
查看: 2872|回复: 5

这两个while为什么第二个能输出正确结果,第一个跟第二个有什么区别?

[复制链接]
发表于 2018-5-14 22:52:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        while(*p++!=0)
        {
                printf("%d",*--p);
        }
while(*p==0)
        p++;
        printf("%d",*p); //这两个while为什么第二个能输出正确结果,第一个跟第二个有什么区别?,我感觉逻辑上一样啊啊,求解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-15 07:37:47 | 显示全部楼层
第二个没有括号,while作用范围不包括print语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-15 09:02:28 | 显示全部楼层
第一个是这样的
  1. while(*p++!=0) {
  2.               printf("%d",*--p);
  3.   }
复制代码


第二个是这样的
  1. while(*p==0){
  2.         p++;
  3. }
  4.         printf("%d",*p);
复制代码


这就是区别~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-15 09:05:06 | 显示全部楼层
第一个里面的--p操作和第二个完全不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-15 22:05:07 | 显示全部楼层
BngThea 发表于 2018-5-15 09:05
第一个里面的--p操作和第二个完全不同

那如果p++这个放在判别式里面,printf放在while里面,实现第二个的功能,该怎么弄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-22 22:35:26 | 显示全部楼层
*p的初始值是多少啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 17:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表