while()*str) 是什么意思?
时间: 2024-03-08 17:47:31 浏览: 163
使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
5星 · 资源好评率100%
`while(*str)` 是一个常见的 C 语言代码片段,它的含义是:只要 `str` 指向的内存单元不为 0,就一直执行循环体中的语句。
在 C 语言中,字符串实际上是一个以 null 字符('\0')结尾的字符数组。因此,如果 `str` 指向的内存单元为 0,那么说明当前字符为 null 字符,即字符串的结尾。所以当循环到字符串的结尾时,循环条件 `(*str)` 会变为 false,循环结束。
通常情况下,`while(*str)` 会和指针操作一起使用,例如:
```c
char* str = "Hello World!";
while (*str) {
printf("%c", *str);
str++;
}
```
这段代码会循环输出字符串 "Hello World!" 中的每一个字符,直到遇到 null 字符为止。在循环体中,`printf("%c", *str)` 会输出指针 `str` 所指向的字符。然后,将指针 `str` 向后移动一个位置,即指向下一个字符,以便下一次循环输出下一个字符。
阅读全文