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',那就按字符型输出追问

解释得太到位了,谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-23
不等于0是因为s是字符数组最后一位是,/0,所以指到0时也就跳出循环确定出了a到z的字符个数

相关了解……

你可能感兴趣的内容

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