c - char 指针如何与 while 循环一起使用

标签 c pointers char

在 while 循环中,当提到 *s 时,它表示 s 中包含的地址处的值,因此在第一种情况下,该值将为 'a' ,

我的问题是 while 循环将如何检查它,它是否检查字符的 ASCII 值以检查条件是真还是假......还有其他方法吗?

main()
{
   char str[] = "abcd" ;
   char *s = str;
   while(*s)
       printf ("%c",*s++) ;
}

最佳答案

当你声明一个字符串变量时

char str[] = "abcd";

这就像声明 str[5] = "abcd\0";

因此,在您的 while 循环中,它首先检查 *s 的值,即“a”,在 ascii 表中转换为 97。然后打印 *s 指针内的当前值,然后将指针增加 1,这导致下一个字符。当你到达 \0 时,循环退出,因为 \0 等于 0;

关于c - char 指针如何与 while 循环一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56642144/

相关文章:

C++ 指向指针范围问题的指针

if-statement - Google-apps-script 函数 CHAR() 和 CODE()

C编程从文本中获取文本旁边的数字

C中不循环计算给定正数的总位数

在 Mac 上编译 Unix 代码

c - 此 C 代码的输出说明

c - 取消引用指向不完整类型的指针 - 列表

c - 通过指针访问结构中的指针

c++ - 文件中的字符检查始终返回 true

objective-c - 如何在 "unused variable"警告中使用类型化常量?