在Windows下的MinGW中编译后,下面的C代码给出了我无法理解的输出.
#include <stdio.h>
main()
{
char s[100];
int i,c;
for(i=0;i<100-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n'){
s[i]=c;
++i;
}
s[i]='p';
printf("%s",s);
}
Run Code Online (Sandbox Code Playgroud)
输出是

为什么"p"后面有奇怪的字符?他们的意思是什么?
c中的字符串需要以null结尾.这意味着字符串的最后一个字符必须始终存在\0.
这就是你编程的方法,知道在哪里停止读取字符串,因为它是一个简单的数组char,不包含你在c ++这样的高级语言中习惯的长度信息.
编辑:奇怪的字符是读取有效字符后内存的结果.由于该内存不包含有效字符,因此可以以各种不可预测的方式进行解释.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |