永发信息网

C语言中的 ASCII读取和PRINT的问题

答案:3  悬赏:60  手机版
解决时间 2021-07-21 12:55
  • 提问者网友:孤凫
  • 2021-07-21 00:18

#include<stdio.h>
main()
{
char a,A;
a=getchar();
printf("%d",a-'A');
}

这个函数可以得到我输入的字母的ASCII码与字母A对应的ASCII码的差值

但是我很疑惑的是为什么A上要加‘’?

我知道如果A不加单引号就是变量A了

这里应该是个强制类型转换吧?而a为何不用加单引号呢?

a在这里虽然是变量,但是它的值也是一个字母啊(如BCD等),这样的话不应该也加上单引号了么?

但是如果a加上单引号,那就又是表示字母a 这样就会失去变量a的含义了

所以我想问的是 C语言里对于强制类型转换 特别是输出ASCII码这里相关的符号使用规则有哪些?或者比较重要和常用的。谢谢了!

最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-07-21 01:53

因为这里A是一个字符,而a是一个字符变量~因为是变量所以就不能用单引号


直接将两个字符进行相加或者相减就能得出他们的ASCII之差或者和了,记得要打印为int行,也就是%d

全部回答
  • 1楼网友:青尢
  • 2021-07-21 03:22

你这里有个明显的错误,你用的是a=getchar(),那么你在运行的时候有没有输入内容呢?如果你输入的是a那么现在变量a的值就是自负a的值了。a,A都是一个变量,如果你不给他们赋值,他们的内容是随机的,也就是系统随机分配的值(相当于空值)。ASCII给对应的字符都赋了不同的值,这有一个表,可以去网上查。

  • 2楼网友:孤独的牧羊人
  • 2021-07-21 02:53
在声明中 不用定义字符变量A 只定义字符变量a即可 你对语言的某些语法还没掌握熟练 自己体会一下 不懂再问我.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯