只是出于好奇:
#include <stdio.h>
#include <string.h>
enum { BIG_NUMBER = 1024 };
int main(void)
{
char mysterious_string[BIG_NUMBER];
if (scanf("%1023s", mysterious_string) == 1) {
if (printf("%s", mysterious_string) != strlen(mysterious_string)) {
// Can this state occur?
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
内在的'if'能否真实回归?我可以盲目地信任这两个函数(printf()和strlen())来返回正确的值吗?
它绝对可以是不同的.
如果printf失败(由于许多原因),那么它将返回一个负数,该数字与从返回的值不同strlen.在所有其他情况下,它将是相同的.
注意:这是假设字符串为空终止并且scanf按预期工作.
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |