c - C中带指针的for循环

标签 c arrays string pointers for-loop

我不明白指针在 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/

相关文章:

c - isLetter 在 C 中带有重音字符

c - 动态内存中的 free()

php - 如何在 php 中进行数组转换或转换

javascript - 合并来自 `for Loop` 的两个独立数组

java - 使用java在eclipse中读取JSON文件时获取空值

c++ - 根据值的字符串表示确定值的类型?

c - 字符串和指针的问题

c - ipv6迁移的副作用

javascript - 根据两个键(即 JavaScript 中的 from 和 to)从两个对象数组中查找唯一值

Java String.replace/replaceAll 不工作