【发布时间】:2021-09-18 08:34:57
【问题描述】:
我正在阅读“C 编程语言”(第 2 版),但我没有理解一个概念。
有这段代码可以将输入复制到输出
#include <stdio.h>
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
一开始,c 被声明为int 类型变量,但如果我写了类似“测试线”的东西,输出就是预期的“测试线”。我的问题是:c 如何声明为int 类型变量,但程序存储的空间足以存储大量字符? “内部”计算机,它注册为一个字符数组?这个过程是如何工作的?
【问题讨论】:
-
c表示单个字符。 -
您可能对these course notes 感兴趣,写在您正在阅读的章节中。
-
程序不会存储所有这些字符,一次只存储一个,它会输出然后忘记。
-
您在这个程序中没有任何数组:不是
char的数组,或int的数组。那是因为根本不需要一次存储一整套字符(一个单词、一行或整个文件)。此代码一次对一个字符进行操作:输入一个,输出一个,重复。 -
我想我现在明白了。代码不会全部存储在一个地方。它对每个字符重复该过程,从标准输入存储在这些缓冲区中,然后显示给用户。感谢您的解释