【发布时间】:2012-07-08 05:37:04
【问题描述】:
void main()
{
char c;
clrscr();
printf("Enter your name:\n");
scanf("%s", c);
printf("You entered your name as : \n")
printf("%s",c);
getch();
}
output//
Enter Your name:
sandeep
You entered your name as :
sandeep
我不明白这个单个 char 变量“c”在不是 char 数组时如何存储字符串??
【问题讨论】:
-
它只是偶然地工作。你正在写入你不拥有的记忆。更不用说您通过不匹配格式说明符和实际传递的数据来调用未定义的行为。
-
如果你的名字足够长,你会遇到段违规错误
-
@DCoder:亲爱的朋友,我也是一名程序员,我也知道这是一个错误的程序,并且结果与我展示的方式不同。但我想知道为什么这段代码每次都给出上述输出。我也在不同的系统上尝试过这段代码。