c语言中c--=0 c为啥=-1
作者&投稿:濮成 (若有异议请与网页底部的电邮联系)
在ASCII编码中, 0~9 的编码是 0x30~0x39, 所以当c在‘0'~'9'的范围中时,c - '0' 就相当于计算c的实际数值,例如 c 是 '1', 则 c - '0' = 1, 把字符值转为数字值了
#include
int main()
{
int a,b;
a=!0;b=!!0;
printf("a=%d,b=%d
",a,b);return 0;
}
/*输出结果:a=1,b=0
*/
扩展资料
0的ASCII码是30,就是先把30转变为与c一样的数据类型【30】,然后用c减去【30】
(1)+,—,*,/运算的两个数中有一个为float或double型,结果是double型,因为统一将所有float型数据都先转换为double型,然后进行运算。
(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double 型,然后进行运算,结果是double型。
(3)字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。字符型可以直接与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。
参考资料:百度百科 - C语言
把c='\0'; 屏蔽了才是你描述的结果
输入回车时,c 就= 13
所以 以下循环进不去
while(c!=13&&c!=27)
{
c=getch();
printf("%c
",c);
}
其实在该循环前,将c 赋值成非13、非27的都可以
0一|=-1,所以c等于一|喽
在c语言中会遇到不同类型的数据进行运算,如果一个运算符的两侧数据类型不同,则先自动进行类型转换,使两者具有同一种类型,然后进行运算,规律为: (1)+,—,*,/运算的两个数中有一个为float或double型,结果是double型
叔钟贞芪: 在c语言中会遇到不同类型的数据进行运算,如果一个运算符的两侧数据类型不同,则先自动进行类型转换,使两者具有同一种类型,然后进行运算,规律为: (1)+,—,*,/运算的两个数中有一个为float或double型,结果是double型
泽普县13111326402: C语言中的逻辑表达式 - ?
叔钟贞芪: !是非的操作,如果c等于零,那么!c就是一个不等于0的数,一般是1,如果c不等于0,那么!c就是0上面题目中c是23,所以!c等于0,表达式a+3>b-5&&!c中,a+3>b-5是真(1),所以转化成1 && 0,显而易见结果就是0.但是你的printf有问题,需要改成 printf("%d\n",a+3>b-5&&!c);
泽普县13111326402: c语言中c==0和c=0区别 - ?
叔钟贞芪: 一个是判断 比较用返回的是一个布尔值 另一个是赋值~
泽普县13111326402: C语言中\0、'\0'、'0'、0分别是什么? - ?
叔钟贞芪: 1、'\0'是字符串结束标志位 对应ascii 码:00; 2、'0'是字符0 对应ascii 码:30;3、0是数字0 对应ascii 码:00.C语言: C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器...
泽普县13111326402: c语言中,c - '0'是什么意思?为什么要减去'0' - ?
叔钟贞芪: '9'-'0'=9;'8'-'0'=8;实现字符到数字的转化.原因是字符'0'~'9'的ascll上是相邻的
泽普县13111326402: c语言中 - 1除以2为什么等于0? - ?
叔钟贞芪: C和java都是这样滴.对于1/2取整..在我看来这两个整型变量相除.由于两个都是整型.相除之后应该不会是向占多字节数的实型转换吧.就是不会自动类型转换!我们都知道1.0/2就会自动类型转换因此得到结果是个实型数呼0.5 我运行过一下.-1/2的结果也会是零..
泽普县13111326402: c语言 带符号数a=_2 b=1 c=a+b c<0? - ?
叔钟贞芪: 这个要看你的c这个变量定义的是什么类型了!如果定义的是有符号的,那么c肯定是小于0的 如果定义的是无符号的,那么c肯定是大于0的
泽普县13111326402: c语言中'1'和1的区别 - ?
叔钟贞芪: 在C语言中,'1'表示字符1(字符型常量); 1表示数字1(数字型常量).两者的关系为:1='1' - '0'; // 即将字符1转换为数字1 两者的区别于联系可以通过下面的程序段来说明:char ch1='1'; // 将字符'1'赋值给字符变量ch1 char ch2=1; // 将ASCII码值为1的字符赋值给字符变量ch2 int a1 = '1'; // 将字符'1'对应的ASCII码值赋值给整型变量a1 int a2 = 1; // 将数字1赋值给整型变量a2
泽普县13111326402: C语言代码如下,为什么输入数中含有一个一个0之后 最终结果就变成 - 1#IND0 - ?
叔钟贞芪: 凡是出现-1.#IND00.基本可以肯定是发生了除0错误.看了好久,也就这里 for(i=0;i { printf("\nPlease input %d system behavior data:\n",i+1); for(j=0;j { printf("a[%d][%d]=",i+1,j+1); scanf("%f",&a[i][j]); } } for(i=0;i { printf("\nPlease input %d ...
泽普县13111326402: C语言中0_-是多少 - ?
叔钟贞芪: 这种语言在C语言是不能编译通过的,自增或者自减符号只针对变量而言,如果你这样定义 iint =0,i--,那么之后i的值变为-1,如果你如此定义int i=0,j; j=i--,那么j的值为0,i的值为-1,对于自增或者自减符号需要好好体会下