C语言基本题 图中第20题 循环语句中,判断数组元素是否为空,为什么可以用!0表示,第一个数不就是
C语言基本题图中第20题循环语句中,判断数组元素是否为空,为什么可以用!0表示,第一个数不就是0吗?另外,希望解释一下另一个问题a=1和b=‘1’区别,有人说前者是整形数...
C语言基本题 图中第20题 循环语句中,判断数组元素是否为空,为什么可以用!0表示,第一个数不就是0吗? 另外,希望解释一下另一个问题 a=1 和 b=‘1’区别,有人说前者是整形数值1 后者是字符1,值为其ASCLL值,那么码值是49,b的值就是49吗,这样的话,49怎样重新变成字符1呢?
展开
2个回答
展开全部
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',那就按字符型输出
数组第一个不是数,是字符,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',那就按字符型输出
追问
解释得太到位了,谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询