在C语言中getchar()如何用

2025-02-23 23:33:07
推荐回答(3个)
回答1:

并不是等于函数,而是等于函数调用的结果

就像数学上说的 令 y = sin(π) 不是说让变量 y 成为一个函数,而是让 y 等于 sin(π) 这个计算的结果。不过 C 语言这样的“过程式”编程语言和数学上有一点不一样,就是对同一个函数的两次一模一样的调用可以得到不同的结果,例如 getchar(); getchar(); 这样两次调用的结果可能是不一样的

getchar() 的返回值类型确实是 int ,返回值的取值有两种可能,一种是 把读到的字符提升成 int 类型 然后返回(因为 int 的取值范围一定是 char 的取值范围的超集,所以不会有数据丢失),另一种是如果读取的时候发生错误,返回的是 EOF,这个宏展开成一个“和任何字符都不相等”的 int 值,用来表示错误,它不一定能用 char 表示。

也就是说,这里人为给 int 加上了“比 char 多一个表示‘不是字符’的值的数据类型”的含义

代码中这种直接把 getchar() 的返回值赋给 char 类型就是放弃检查 读取时有没有发生错误,算是偷懒的做法或者是比较坏的做法吧

回答2:

首先类型 char < short < long ,int由系统决定是short还是long,他们之间是可以相互转换的。

char型指是ascii码表对应的字符,如,'A'的ascii码是65,

你可以

char A = 'A';
char A = 65;
int A = 'A';

不管是int还是char,在内存中都是二进制。只要他们二进制相同,就是相等的。

int和char是可以混用的,学会用printf %c %d来测试他们吧,这样你就能加深印象


------------------------

”定义一个字符后,这个字符为什么能等于一个函数啊?“

这个一点也不奇怪

这个不是等于一个函数,而是等于其返回值。


例如:

int a = 10;

int b = fun(); //假设fun()返回一个10的函数

都是可以


getchar是函数,

getchar()是函数调用。


就像高中学的y=f(x),y是等于f(x)计算出来的值

x是形参,你具体传入一个值,如0,就可以算出来具体的值


另外等于函数,其实说的是函数指针,暂时你用不上,就先不介绍了

回答3:

函数是有返回值的,你自己写个带返回值的函数也可以。
getchar返回的值可以说是ASCII码,字符都是有一个ASCII值的。