字符9减去字符0后=什么?
结果有何含义,还是字符吗?
'追问
意思就是说‘9’-‘0’等于结果9,这个9要看他存储到哪里,
比如int sum=‘9’-‘0’ 那么这个结果sum就是数字9
char sum=‘9’-‘0’ 那么这个结果就是字符9
对吗?
不是字符9,char sum的存储着有ASC码为9的字符。是')'
有单引号:
表示字符常量,使用时,是转变换成字符对应的ASCII值。 如下,
'0'对应的ASCII值: 48
'1'--------------------49
'2'--------------------50
......
'9'--------------------57
'a'------------------97
'A'------------------65
如:'0'~'9'表示数字48~57
无单引号:
表示字符实际的意义,如,0~9就表示数字0~9了
所以本题:'9' - '0' <=====> 57-48=9 (输出格式为:%d)----------%d表示输出整数
如果输出格式是 %c的话,结果为ASCII值9 对应的字符。------------%c表示输出 字符
(输出结果是数字还是字符,得看格式控制符是%d还是%c.)
希望对你有所帮助!追问
比如int sum;
char a;
sum='9' - '0' sun的 结果是数字;
a='9' - '0'+8 a的结果是字符(其中8是数字,在参与运算的时候,
是按字符8处理,还是数字9?)
是这样吗?
感觉会报错。
哈。你这一问,还牵出一个数据类型自动转换的题型,good.
数据类型转换规则:
short、char→int→unsigned→long→ double ← float
所以,
#include "stdio.h"
main()
{
int sum; /*定义整型*/
char a; /*字符型 应改为 int a;*/
sum='9' - '0' ;
putchar(sum); /*输出:9*/
a='9' - '0'+8 ;/*这边得用到数据类型转换规则:将字符'0' ’9‘转化成整型数字:48 58 所以a='9' - '0'+8a=57-48+8 即 a=9 不过你一开始就定义a为char 可能会报错 */
int sum; /*定义整型*/
char a; /*字符型 应改为 int a;*/
sum='9' - '0' ; !!!sum是数字9,是or不是?
putchar(sum); /*输出:9*/!!!sum又变成了ask编码表9所对应的字符,是or不是?
a='9' - '0'+8<======>a=57-48+8 即 a=9 !!!为什么这里不是a= ask编码表9所对应的字符,因为之前已经定义char a了,why呢?
追答
是
不是 putchar用于输出,不然改成scanf输出
char可以表示in t int 不能表示char
哦哦,谢谢啦~
本回答被提问者和网友采纳字符0=30
字符9-字符0=9
9查ascii表
9
字符显示形式: ht
10进制的形式: 9
16进制的形式: 9
8进制的形式: 11
网页使用形式: 或
地址编码形式: %09追问
字符9-字符0=9 这个结果9是字符还是什么东东?
结果还是字符吗?我想问的是,结果还是字符吗?
追答不是字符了,但是还是ask控制码
57-48=9