作业帮 > 综合 > 作业

C语言基本题 图中第20题 循环语句中,判断数组元素是否为空,为什么可以用!0表示,第一个数不就是

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 03:03:45
C语言基本题 图中第20题 循环语句中,判断数组元素是否为空,为什么可以用!0表示,第一个数不就是
C语言基本题 图中第20题 循环语句中,判断数组元素是否为空,为什么可以用!0表示,第一个数不就是0吗? 另外,希望解释一下另一个问题 a=1 和 b=‘1’区别,有人说前者是整形数值1 后者是字符1,值为其ASCLL值,那么码值是49,b的值就是49吗,这样的话,49怎样重新变成字符1呢?
1、为什么可以用!0表示,第一个数不就是0吗?
数组第一个不是数,是字符,c语言中字符是按整数储存的,一个字符对应一个整数,就是ASCII码.字符'0'的ASCII码为48,字符数组都有结束符'\0',它跟NULL是类似的,ASCII码为0,所以可以用s[i]!=0来判断数组是否结束了
2、 a=1 和 b=‘1’区别
1表示整数,'1'表示一个字符,对应ASCII吗为49.关于怎么把49转化为字符'1'的问题,在运算过程中默认'1'与49通用,不过也可以通过强制类型转化:
int a=49;
char b;
b=(char)a;
就可以把49转化为'1'.
另外输出的时候你想看到它是49,那就按整型输出;你想看到它是'1',那就按字符型输出
再问: 解释得太到位了,谢谢