例如:
#include<stdio.h>
int main()
{
char c;
c = getchar(); // Let's say you enter AA
printf("%c\n", c);
}
第二个字符是否会像堆栈一样卡在内存中的某个保留位置?因为我知道如果我要添加另一个c = getchar(),第二个字符将被赋值给变量c。
答案 0 :(得分:4)
第二个字符是否会像堆栈一样卡在内存中的某个保留点?
最有可能在与stdin
相关联的缓冲区中。
答案 1 :(得分:1)
如果您为单个字符输入AA
,则剩余输入仍将位于stdin
缓冲区中,如此程序所示。为了清晰起见,它打印的ASCII值不是打印字符。我只输了一次AA<Enter>
。
#include<stdio.h>
int main()
{
char c;
c = getchar(); // Let's say you enter AA<Enter>
printf("%d\n", c);
c = getchar(); // still another A to come
printf("%d\n", c);
c = getchar(); // still a newline to come
printf("%d\n", c);
return 0;
}
计划会议
AA
65
65
10
答案 2 :(得分:0)
如你所知,getchar只接受一个变量。所以第二个&#39; A&#39;不存储任何where.it会在ROM上存在一段时间,但是当你点击它的那一刻它将会消失。