在c语言中字符与数字的有关问题:0与‘0’的区别

作者&投稿:冻翟 (若有异议请与网页底部的电邮联系)
C语言中字符0和整数0的区别以及用法疑问?~

这个程序中虽然你定义的是int c但因为是用的getchar()输入所以输入的是字符行,这个我可以给你个程序验证!
#include int main(){ int c; c=getchar(); printf("%d
",c); return 0;}

输出结果是53是5的ASCII值
所以输入的C是字符而不是整型数字,在比较大小的时候要用ASCII值比较大小,'0'代表字符0,ASCII值是48,如果直接写0则表示数字0,也就是说if条件里面的比较大小那就会有错因为字符1到9的ASCII值肯定不在0到9之间。所以要用字符'0','9'.当然可以用48和58代替。
恩恩你理解的没错!是你所说的那样!

把 0 ~ 9 的整数转换成它对应的 ASCII 就 + '0'
相反的操作就 - '0'

一、数据类型不同

1、0:代表数字0。

2、‘0’:代表字符0。

二、计算能力不同

1、0:具有计算能力。

2、‘0’:是不具计算能力的文字数据类型。


三、内存存储不同

1、0:由数字、小数点、正负号和字母E组成,用字母N表示。数值型数据的取值范围是:-0.9999999999E+19+到0.9999999999E+20,包括正负号、小数点和字母E在内,其长度最大20位。

2、‘0’:包括中文字符、英文字符、数字字符和其他ASCⅡ字符,其长度(即字符个数)范围是0-255个字符,即0x00至0xFF。


参考资料来源:百度百科-数值型数据

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



0是数值型,而‘0’是字符型,两者在数据类型上不同
如果都用十六进制表示,数值0表示为0x00,字符'0'表示0x30(可以查ascii码)
在C语言中,会检查数据的类型并有专门的关键字,数值型的如int、long,浮点型的如float、double,字符型的如char,区分这些类型是了解C的第一步。

请注意 ASCII的编码
字符 对应的ASCII码(10进制)
'0' 48
'1' 49
'2' 50
'3' 51
......
'8' 56
'9' 57

输入是字符串"32486",
要把这个字符串装换为数字
3*10000 + 2*1000 + 4*100+8*10+6
个十百千万 位上的 数字 怎么来?
例如 万位 的3
要把字符'3' 转为 数字 3
ASCII表里 '0' 到 '9'是相邻、连着的
'1' 比 '0' 大 1
'2' 比 '1' 大 1 '2' 比 '0' 大 2

所以 '3' - '0' 就得到'3'对应的数字3,
再来看'3' - 0是多少 ,'3' 的ASCII码是 51 ,51 - 0 等于 51显然 不对

注意 字符 在内存中是数字 字符型是 特殊的整形

肯定不同呀,0的值还是0 而'0'的值是按它的ASCII码值来算的,注意ASCII表示的都是字符

一个是数字0,一个字符0。


C语言中一个英文字母.汉字.数字 分别都占几个字节啊
1、英文字母:如果是char 型,那么是占用1个字节,如果是string型,应该是两个。char c = 'a';\/\/它占用一个字符 char c[] = "a";\/\/占用两个。char c[] = "abcde";\/\/占用4+1 = 5 个,结尾有一个'\\0'2、数字:这个有很多中,从小到大分别为:short、int、float、long、double分别...

c语言数字和字符的相互转换
在C\/C++语言中没有专门的字符串变量 通常用字符数组来存放字符串。字符串是以“\\0”作为结束符。C\/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。字符串是面试的重点考查部分的相关知识,通过考查字符串的相关知识可以考察程序员的编程规范以及编程习惯。并且其中包括了许多知识点,例如...

C语言中,数字字符串和数值型数据有什么区别?
1、字符型(Character)数据是不具计算能力的文字数据类型,用char表示。它包括中文字符、英文字符、数字字符和其他ASCⅡ字符,其长度(即字符个数)范围是0-254个字符。2、字符型变量是用来保存单字符的一种变量:如:char a='a'; 而字符串就是用来保佑多个字符的变量,C语言中用字符数组来表式一个...

谁能详细解释下C语言中字符和数字的存储区别
字符变量用char定义 char c='1' ; '1'在ASCII代码是49系统把整数49赋值给c 字符'1'只是代表形状为'1'的符号,在内存中占一个字节,00110001(49)整数1在内存中占两个或四个字节00000000 00000001(1)int c=1;

c语言里 输入时 怎么判断是字符还是数字?
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:char a;scanf("%c", &a);if (a < '0' || a > '9') {printf("输入错误\\n");} 3、编译器运行test.cpp文件,此时成功判断了输入的是字符而打印了“输入错误”的提示。

c语言中,输入一串字符,然后分别存放输出数字,字母,其他,怎么用函数表 ...
\/*输入一串字符,然后分别存放输出数字,字母,其他*\/#include<stdio.h>#define N 80int main(void){void myString(char *str,char *ch,char *num,char *other);char str[N],ch[N],num[N],other[N];printf("输入一个字符串: ");gets(str);myString(str,ch,num,other);printf("字母:...

C语言中,输入一个字符串,如何区分数字字符,
通过判断输入字符的ascii码的范围 就可以 如果大于等于48 小于等于57 就是输入的阿拉伯数字。如果输入的字符 大于等于65小于等于90 就是大写的英文字母 如果输入字符 大于等于97 小于等于122 就是小写的英文字母 具体参考一下ascii表

C语言 如何判断输入的是数字还是字符
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始的.cpp文件,例如:test.cpp。2、其次,在test.cpp文件中,输入C语言代码:char a = getchar(); getchar();if (a <= '9' && a >= '0') printf("数字");else printf("字母");3、然后,编译器运行...

C语言:如何判断输入的是数字还是其他字符
判断其是字母还是数字。2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。至于怎么判读是字母还是数字,很简单,假设字符c,满足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母。满足 (c>='0' && c<='9')就是数字。

c语言中 那个格式控制字符串 可以输入数字和字符
所以无法读取含有空格的字符串。gets():直接输入字符串,并且只能输入字符串。gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对gets()来说就是一个完整的字符串。换句话说,gets()用来读取一整行字符串。

斗门区19329396096: 在c语言中字符与数字的有关问题:0与'0'的区别 -
裔蕊谓宜: 请注意 ASCII的编码 字符 对应的ASCII码(10进制) '0' 48 '1' 49 '2' 50 '3' 51 ...... '8' 56 '9' 57输入是字符串"32486", 要把这个字符串装换为数字 3*10000 + 2*1000 + 4*100+8*10+6 个十百千万 位上的 数字 怎么来? 例如 万位 的3 要把字符'3' ...

斗门区19329396096: 求助C语言的一道计算题数字字符0的ASCII -
裔蕊谓宜: 数字字符0的ASCII----十进制值为48

斗门区19329396096: C语言中\0、'\0'、'0'、0分别是什么? -
裔蕊谓宜: 1、'\0'是字符串结束标志位 对应ascii 码:00; 2、'0'是字符0 对应ascii 码:30;3、0是数字0 对应ascii 码:00.C语言: C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器...

斗门区19329396096: 0'在c语言是什么意思? -
裔蕊谓宜: 字符0'对应的ASCII码是48,48对应的十六进制数就是0x30.通常我们在编程的时候,用字符转化为数字的时候经常要用到,比如要将'8'转换为数字8,在语句中这样写就可以了,“ 8+0'”.这里的8就是数字.c语言是一门面向过程、抽...

斗门区19329396096: 在c语言中'0'是什么意思?怎么用? -
裔蕊谓宜: 字符里面的数 char a = '0';//a这个字符里面装的就是0当我们要把一个字符格式的数字转化为整型数字时,可以这样用: char a = '7'; int b = a - '0';//b = 7同理·数字加'0'可转化为字符

斗门区19329396096: c语言数字0对应的字符为什么是a? -
裔蕊谓宜: 数字0理论上是空字符\0才对,这个可能是编译器问题.1、\0 的意思是 ASCII 值为 0 的字符.它的意义是“字符串结束符”.2、例如,一个字符串 "Hello" ,它是由字符 H,e,l,l,o,\0, 6 个字符在内存中连续存放的.当程序遇见第一个 \0 时就会认为该字符串结束.

斗门区19329396096: C语言中字符和数字的不同? -
裔蕊谓宜: C语言支持的是ASCAII 编码 0-255 所以是一字节 在0-255范围内 支持数字与字符的转换 具体参见ASCAII码表 字符表示应该用单引号 例如'1' 1是不一样的'1'代表数字49

斗门区19329396096: C语言中的'0'有什么作用? -
裔蕊谓宜: 应该是英文字母O吧,而不是数字0. '0'是字符常量,跟数字79一样.a[i]=n%10+'0'就是自增79.majie5994回答得不对.这时跟输入输出没关系.

斗门区19329396096: C语言中,数字和数字字符有什么区别 -
裔蕊谓宜: 1,数据类型不同: 数字1是数值类型中的整数类型(int) 数字字符'1'是字符类型(char) 2,处理方式不同: 数字1按照数值信息的处理方式处理. 数字字符'1'按照字符串的处理方式处理. 3,表达方式不同: 数字1的占位符为%d. 数...

斗门区19329396096: C语言中'0'的应用 -
裔蕊谓宜: '0'就是字符的0,等价于10进制的48'\0'就是字符串结束符,等价于10进制的0至于'0'怎么用,这个就是一个字符,我看到很多设备传输信号时候会传输'0'

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网