照例先上代码😁
# include <stdio.h>
void main()
{
//以下以数值形式输出
printf("数值形式输出:\n");
printf("0=%d\n",0);
printf("'0'=%d\n",'0');
printf("'\0'=%d\n",'\0');
printf("NULL=%d\n",NULL);
//以下以字符形式输出
printf("字符形式输出:\n");
printf("0=%c\n",0);
printf("'0'=%c\n",'0');
printf("'\0'=%c\n",'\0');
printf("NULL=%c\n",NULL);
}
运行结果:
数值形式输出:
0=0
'0'=48
'NULL=0
字符形式输出:
0=
作为对比:
printf("字符形式输出:\n");
printf("a=%c\n",'a');
printf("0=%c\n",48);
printf("0=%c\n",0);
printf("'\0'=%c\n",'\0');
printf("NULL=%c\n",NULL);
运行结果:
字符形式输出:
a=a
0=0
0=
可见:
1. '0’是一个普通字符,ASCII码为48 故以%d形式输出时为48,以%c形式输出时为0
2. '\0’是转义字符,ASCII码为0,故以%d形式输出时为0,以%c形式输出时不可见,因为它不是可打印字符,它是字符串的结束标志
3. 0是整数,ASCII码为0,以%d形式输出时为0,以字符形式输出时为NULL,为空字符,也不可见。
4. NULL是一个普通字符,ASCII码为0,故以%d形式输出时为0,以%c形式输出时不可见