我不明白指针在 for
循环中的作用。 *p
在下面的循环中做了什么?
char str[128] = "Some Text";
char *p;
for (p = str; *p /*what does this mean?*/; p++)
{
// Code
}
我确实理解其余部分,但为什么 *p
不像 p > 3
或类似的东西?
为什么是一个人?
为什么这么写?
最佳答案
在 bool 上下文中,例如 for
循环的条件,C 中的每个表达式的计算结果为真(非零)或假(零)。
您希望 for
循环在到达字符串末尾时终止。
在 C 中,每个字符串都以字符 '\0'
结束,实际上是 0
。因此,当 for
循环到达字符串末尾时,*p
的计算结果为 '\0'
,即 0
,计算结果为 false,终止 for
循环。
关于c - C中带指针的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33829566/