'1'在C语言里是数字还是字符

charaa='A'+'1'-'2'这里的'1'-'2'到底算什么,是数字吗?... char a
a='A'+'1'-'2'
这里的'1'-'2'到底算什么,是数字吗?
展开
 我来答
四舍五不入6
高粉答主

2020-02-03 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71371

向TA提问 私信TA
展开全部

是字符,只要是被一对单引号引起来,那就是字符。

除了转义字符之外的字符就是普通字符,字符包含普通字符和转义字符,需要用‘’(两个单引号)包含。例如 'a' 是普通字符;'\n'是转义字符,转义字符是C语言中表示字符的一种特殊形式。

扩展资料:

字符包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。字符在计算机内存放,应规定相应的代表字符的二进制代码。

代码的选用要与有关外围设备的规格取得一致。这些外围设备包括键盘控制台的输入输出、打印机的输出等等。字符作输入时,要自动转换为二进制代码存于机内,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。

参考资料来源:百度百科-字符

参考资料来源:百度百科-转义字符

tattackor
推荐于2017-09-18 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:894万
展开全部
当然是字符。只要是被一对单引号引起来,那就是字符。
1、除了转义字符之外的字符就是普通字符。字符包含普通字符和转义字符,需要用‘’(两个单引号)包含。例如 'a' 是普通字符;'\n'是转义字符。
2、转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瓜娃子1598221
2014-08-23 · TA获得超过138个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:104万
展开全部
当然是字符。只要是被一对单引号引起来,那他就是字符。由于字符不能直接相加减,所以,每一个字符按照其ascii码转换成整型数据,再相加减,最后把得到的整数转换成字符,流程就是这样
追问
那'1'-'2'是-1个ascii码吗
追答

通过查表,可得:'1'=49 '2'=50 'A'=65

所以你上面的a=65+49-50=64

再查表,得a='@'

这就完了,你记住字符其实实质上是一个整数,加加减减都是通过ascii码进行的

另外,对你另外一个追问回答:

int a可以,但不能int a='1',因为类型不一样,可以写成int a = (int)'1'.这时,a=49。永远记住,'1'不等于1,因为字符不是对应的那个整数,字符是按照其ascii码转换成整数的,不知道,就去查表。或者给你一个程序,编译运行一下吧。好好看看。

#include <stdio.h>


int main()

{

int i;

for(i=0;i <= 255;i++)

{

printf("%c\t\t\t",i);

printf("%d\n",i);

}

return 0;

}

告诉你,显示?的就是不能显示出来的字符。这时,后面的ascii码与之前的无法对齐,仔细观察一下。还有,第一个也不准,因为第一个就不是可显示字符。这是我运行结果的一部分:

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
turntogo
2014-08-23 · 超过13用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:15.1万
展开全部
C语言中,将'1'赋值给字符变量,它就是按字符处理的,赋值给整型变量,它就是按数字处理的。
同样的道理,你也可以把49这个数字赋给字符变最,它也是按字符处理的,将49赋给整型变量,也是按数字处理的。
实际上,字符'1'的内码(ASCII码)就是49。
追问
那如果是int a,那么a可不可以等于'1',那时a的值是1还是49,
追答
int a = '1';
a的值实际为49
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
My_Persistence
2015-10-16 · TA获得超过3468个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:435万
展开全部
'1' 表示字符,C语言里是用单引号来表示单个字符的,而不是表示数字,字符在内存中存储的是其对应的ASCII值的,字符'1'的ASCII值为49,那么在内存单元中存放的是是49,而不是数字1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式