为什么while循环永远不会结束(我再次询问)

时间:2020-08-23 12:00:28

标签: c

编辑:是的,我忘了指针,谢谢,但是为什么还没有结束呢?虽然我只检查str,但结束了,但是当我检查str和str!= 32时,它永远不会结束,即使我忘记了指针使str!= 32始终为1,str在某些时候变为0(我在使用时检查了它单独),为什么当我包含str!= 32时它在某些时候没有变为0?

代码在leetcode中是有疑问的:从字符串到整数(atoi)

int myAtoi(char *str)
{
   while(str && str != 32)
       ++str;
}

我忽略了它的其他部分,这个while循环永远不会在我的程序中结束(这是第一条与代码的其他部分无关的语句)

我也尝试过str!=''&& str和str!= 32 && str!='\ 0',但是每当我检查空白时,循环永远不会结束,为什么循环不会结束?我只是在检查一条语句,例如,这很好:

int myAtoi(char *str)
{
   while(str)
       ++str;
}

1 个答案:

答案 0 :(得分:0)

str是一个指针。它的值永远不会为null或可转换为false。 *str是一个字符,当找到\0的字符时将为空。

相关问题