指针初步
本帖最后由 minamikotori 于 2020-12-20 10:50 编辑#include <stdio.h>
#define MAX 1024
int main()
{
char str;
char *target = str;
int length = 0;
printf("请输入一个字符串:");
fgets(str, MAX, stdin);
while (*target++ != '\0')
{
length++;
}
printf("您总共输入了 %d 个字符!\n", length - 1);
return 0;
}
这段代码在不输入任何字符的时候,是怎么进行比较的
*target 是‘\0’吧
那*target++ 里面是什么了 很简单,在不输入任何东西的情况下,str = '\n', str = '\0' ,就是说,str[] 并不空,代码中的变量 length 是在统计字符串结束标志 '\0' 前面有几个字符,很显然,length = 1,因为换行符 '\n' ,使用 fgets() 读入的每一个字符串中,最后一个字符都是 '\n',所以,为了忽略它,最后,在显示字符数量时,使用的是 length - 1。
页:
[1]