我是C语言初学者,最近研究了getchar
函数,它可以从控制台或文件中接受一个字符,在输入时立即显示出来 我们需要按 Enter 键才能继续。
它返回他们读取的unsigned char
。如果遇到文件结尾或错误,getchar()
函数返回 EOF。
我的问题是,当它返回unsigned char
时,为什么它的返回值存储在int
变量中?
请帮帮我。
最佳答案
正是因为那个 EOF 值。因为文件中的 char 可能是任何可能的 char 值,包括 C 字符串用于终止的空字符,getchar()
必须使用更大的整数类型来添加 EOF 值。
它只是碰巧为此目的使用了 int,但它可以使用至少 9 位的任何类型。
关于c - 为什么用来保存getchar返回值的变量必须声明为int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013167/