【发布时间】:2019-05-30 20:21:57
【问题描述】:
Length 是假设返回在穿过字符串时计数器走了多远。但是,它仅在预先打印时才返回正确的值。如果我注释掉 printf 它返回 0。
有人对此有解释吗?
#include<stdio.h>
#include<string.h>
#define MAX 100
int length(char *s) {
int i;
for (i = 0; s[i] != '\0'; ++i)
printf("%d ", i); //<-- here
return i;
}
int main()
{
char s[MAX];
fgets(s, (char)sizeof(s), stdin);
s[strcspn(s, "\n")]='\0';
printf("Length: %d\n", length(s));
return 0;
}
【问题讨论】:
-
这就是为什么你总是使用括号
{}^^