山小 发表于 2022-5-14 09:33:02

while语句求助

各位大佬好;
请问这句 while (*target++ != '\0') 该怎么理解?

蔚蓝水晶 发表于 2022-5-14 09:45:44

"target"是字符串吗?如果是的话可以这样理解:
读取target的每个字符,直到读取到空字符"\0"为止。
(应该是对的)

山小 发表于 2022-5-14 09:53:35

蔚蓝水晶 发表于 2022-5-14 09:45
"target"是字符串吗?如果是的话可以这样理解:
读取target的每个字符,直到读取到空字符"\0"为止。
(应该 ...

target是指针,一道小甲鱼的作业题,难理解的地方就在*target++这里

jackz007 发表于 2022-5-14 10:34:02

本帖最后由 jackz007 于 2022-5-14 10:50 编辑

      这一句
      while (*target++ != '\0') ;
      先判断 * target 是否等于 '\0',然后,无论是否相等都执行 target ++,如果不相等就继续循环,否则,就结束循环。
      所以,上述语句和下面这些语句等效
      for(;;) {
                target ++                        ;
                if(* (target - 1) == '\0') break ;
      }
      循环结束的时候,target 指向字符串末尾 '\0' 之后的下一个字符,而不是 '\0' 字符本身。

豆嘉木 发表于 2022-5-14 11:08:11

如果target是一个字符串,那么target++就是依次访问字符串每一个字符,\0是在字符串末尾的

山小 发表于 2022-5-14 12:16:44

明白了各位。*p++ = *p ;p + 1

jiuyaoshifang 发表于 2022-5-14 13:31:53

tarrget应该是个字符串,字符串即指针,’\0‘是字符串的结束符,如我定义一个字符串char a ="123",实际计算机是char a ="123\0",遇到’\0‘就表示该字符串结束了。所以,while函数的作用是,target字符串从0开始,一直++,当元素不是结束字符时,进行循环

编程追风梦 发表于 2022-5-15 16:38:46

jiuyaoshifang 发表于 2022-5-14 13:31
tarrget应该是个字符串,字符串即指针,’\0‘是字符串的结束符,如我定义一个字符串char a ="123",实 ...

我去网上查了一下,好像........是这么回事(开玩笑)

编程追风梦 发表于 2022-5-15 19:50:22

大家好
页: [1]
查看完整版本: while语句求助