c - char 指针如何与 while 循环一起工作
问题描述
在 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;
推荐阅读
- angular - 如何在 Ng2 图表中显示标签而不必将鼠标悬停在它们上面?
- r - 如何按日期分组以显示零和非零条目的计数?
- python - Pyspark:使用私钥连接到雪花时出错
- node.js - 无法启动“npm”:确保已安装“npm”并且可以找到
- groovy - 如何使用匿名类覆盖 Groovy 变量和方法?
- python - 如何创建一个类来定义包含标题的 CSV 文件布局?
- python - 关于 tf.data.Dataset、tf.shape() 和 ? 在高度和宽度,但我想使用 h 和 w 从图像中随机裁剪,我该怎么做
- javascript - Angular 7 build:如何删除输出哈希和默认值~
~ 文件? - python - 在python中从一个类继承一个函数到另一个类?
- network-protocols - 使用 PHP 调用 TwitterAPI 时如何测试连接协议?(SPDY 或 HTTP/1.0、1.1)