下面程序中,输出*的个数是几个?为什么?char *s=“尀ta尀018bc”;for(;*s!=‘尀0’;s++)printf(“*”)

2026年09月18日 14:14
有2个网友回答
网友(1):

这个问题运行以下就知道了
正确答案是6个
\t
为转义字符输出一个*
a
输出一个*
\01
输出一个*,意为1是一个8进制数
8
输出一个*
b
输出一个*
c
输出一个*
如果*s
=
"\ta\017bc"结果就不一样了,共输出5个*
\t
为转义字符输出一个*
a
输出一个*
\017
输出一个*,意为17是一个8进制数
b
输出一个*
c
输出一个*
相信这样回答楼主能明白吧

网友(2):

六个,这个字符串中的字符分别是:
\t
a
\01
8
b
c
\0
\t
\01是转义字符,\0是赋值时自动加上的。
PS:
一开始大意了,8进制数里最大的数字是7。
如果是char
*s
=
"\ta\017bc\0"的话就是五个了。