【发布时间】:2016-09-24 21:58:04
【问题描述】:
#include <stdio.h>
#define LIM 1
int main(int argc, char const *argv[]) {
int i;
int c;
char s[LIM];
for (i=0; i < LIM-1 && (c=getchar()) != '\n' && c != EOF; ++i)
{
s[i] = c;
}
printf("%d\n", s);
return 0;
}
输出例如:1541348039 我希望它是 1。
【问题讨论】:
-
%d采用int,而不是char *。 -
你的循环永远不会执行。因此,您可以看到分配的内存中存储的任何内容。
-
#define LIM 1太小 -->#define LIM 100,char s[LIM] = {0};或在 for-loop 后添加s[i] = 0;,printf("%d\n", s);-->printf("%s\n", s);