c语言输出字符问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:42:30
下面程序段中,输出*的个数是
char *s="\ta\018bc";
for(;*s!='\0';s++)printf("*");

答案是6 请问哪六个字符???
\018是八进制么?怎么会有8啊???

\t
a
\01 //八进制整数表达方式代表16
8
b
c
因为for(;*s!='\0';s++)printf("*");判断到'\0'结束,所以不计算\0
抱歉,第一次答的时候没有仔细看,真的很抱歉
昨天晚上12点睡了,今天才回来现在补充这个问题的答案:
字符常量除了普通字符常量,例如'a','1'外;还有转义字符常量,例如:'\a'(响铃),'\n'(换行),'\t'(tab)等;还有16进制字符常量,表示方式是'\xf798e',16进制字符常量的规定:以\x开头,至少1位16进制数字位数,没有上限;还有就是你上面给出的8进制'\01',以\开头,后跟1到3位8进制位数。字符'\01'的ascll值是1,代表的字符是笑脸。你可以自己尝试着把它打出来,很有意思的。
char c = '\01';
printf("%d,%c\n",c,c) ;

[TAB]a空格8bc