两条C语言题 我是新手 #includemain(){printf("%d\n",NULL);}输出结果为什么是0?main(){ char c1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}前面两个输出6,0可以理解,后面两个呢··?第二题输出结果为6,0,6,102

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 22:02:23
两条C语言题 我是新手 #includemain(){printf(

两条C语言题 我是新手 #includemain(){printf("%d\n",NULL);}输出结果为什么是0?main(){ char c1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}前面两个输出6,0可以理解,后面两个呢··?第二题输出结果为6,0,6,102
两条C语言题 我是新手
#include
main()
{printf("%d\n",NULL);}
输出结果为什么是0?
main()
{ char c1='6',c2='0';
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}
前面两个输出6,0可以理解,后面两个呢··?
第二题输出结果为6,0,6,102

两条C语言题 我是新手 #includemain(){printf("%d\n",NULL);}输出结果为什么是0?main(){ char c1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}前面两个输出6,0可以理解,后面两个呢··?第二题输出结果为6,0,6,102
第一题的printf函数输出结果是0 的原因是:在C语言中,NULL代表的就是0,是有一个头文件中定义的宏.
第二题的c1比c2ASCII码刚好大6,c1-c2应该也不用解释吧,c1+c2的结果是102,因为,字符'6'的ASCII码值是54,'0'的ASCII码是48,所以加起来是102.
附:int型和char型可以相互转换,条件允许的话还是看看ASCII码表,上面有对应的关系值.