首页 > 解决方案 > char 指针如何与 while 循环一起工作

问题描述

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

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

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

标签: cpointerschar

解决方案


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

char str[] = "abcd";

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

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


推荐阅读