Gordonewqewq 2016-03-13 15:42 采纳率: 50%
浏览 1343
已采纳

新人提个c语言问题(手机有字数限制,所以代码比较难看。。。前面的部分就省了)

要求输入一个字符,输出它的ASCII码int main(){int b;scanf("%c",&b);printf("%c %d",b,b);return 0;}
前面定义b为int,但scanf里输入的是%c,为啥最终还能成功的输出字符的ASCII码?是因为scanf里用的是%C,然后电脑从键盘录入的时候自动把输入的东西录成字符型了?并没有受到前面的那个int影响?

  • 写回答

7条回答 默认 最新

  • renlong0829 2016-03-13 16:57
    关注

    所有可以通过键盘输入的符号,在内存中就是以对应的ASCII码值存储的。
    变量b保存的就是输入字符的ASCII码值。
    %c是表示这个输入/输出必须是可以显示的字符。换句话说就是在一个txt文件里面能够出现的字符。
    你按F1,ctrl,shift,alt之类的按键,是不能得到ASCII码的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services