在 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/