小休比 发表于 2018-5-14 22:52:03

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

        while(*p++!=0)
        {
                printf("%d",*--p);
        }
while(*p==0)
        p++;
        printf("%d",*p); //这两个while为什么第二个能输出正确结果,第一个跟第二个有什么区别?,我感觉逻辑上一样啊啊,求解答!

ABC23 发表于 2018-5-15 07:37:47

第二个没有括号,while作用范围不包括print语句

风过无痕丶 发表于 2018-5-15 09:02:28

第一个是这样的
while(*p++!=0) {
            printf("%d",*--p);
}

第二个是这样的
while(*p==0){
      p++;
}
      printf("%d",*p);

这就是区别~

BngThea 发表于 2018-5-15 09:05:06

第一个里面的--p操作和第二个完全不同

小休比 发表于 2018-5-15 22:05:07

BngThea 发表于 2018-5-15 09:05
第一个里面的--p操作和第二个完全不同

那如果p++这个放在判别式里面,printf放在while里面,实现第二个的功能,该怎么弄

Neverturnback 发表于 2018-5-22 22:35:26

*p的初始值是多少啊?{:5_94:}
页: [1]
查看完整版本: 这两个while为什么第二个能输出正确结果,第一个跟第二个有什么区别?