我在键盘上输入1,这个1代表的到底是字符1,还是数字1

我在键盘上输入1,这个1代表的到底是字符1,还是数字1

先触发按键1对应的键盘扫描电路
按键1对应的扫描码被键盘中断接收放入键盘缓冲区
Windows消息循环从键盘缓冲区中提取按键1对应的扫描码翻译成ASCII码0x31放入Console程序的stdin管道中
scanf从Console程序的stdin管道中读取ASCII码0x31,根据scanf给出%c,%d,%f,%lf和&变量,将0x31翻译成char,int,float,double类型的常量'1',1,1.0f,1.0放到变量对应内存地址中。

那要看你是如何读取的,
用 scanf("%d", &x); 读取是数值1,
用 scanf("%c", &x); 或 getchar() 读取就是字符'1'

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

字符1

你在键盘上输入的都是字符,scanf会根据指定的格式来解释你输入的字符并转换成相应的值