c语言问题,帮我看一下这道奇葩的题怎么回事??为什么运行是这个结果??
#include<stdio.h>intmain(){char*s="\ta\017bc";char*b="\ta\018bc";char*k="\ta\033bc";f...
#include<stdio.h>int main(){ char*s="\ta\017bc"; char*b="\ta\018bc"; char*k="\ta\033bc"; for(;*s!='\0';s++) { printf("*"); } printf("\n"); for(;*b!='\0';b++) { printf("*"); } printf("\n"); for(;*k!='\0';k++) { printf("*"); } printf("\n"); return 0;}
展开
4个回答
2014-01-06
展开全部
哪儿奇葩了???
#include<stdio.h>
int main()
{
char*s="\ta\017bc"; //\t a \017 b c 共5个字符
char*b="\ta\018bc";//\t a \01 8 b c 共6个字节 \0开始的是八进制数,八进制数没有8,最大为7,所以是\01 8 分开的
char*k="\ta\033bc"; // \t a \033 b c 共5 个字符
for(;*s!='\0';s++)
printf("*");
printf("\n");
for(;*b!='\0';b++)
printf("*");
printf("\n");
for(;*k!='\0';k++)
printf("*");
printf("\n");
return 0;
}
展开全部
char*s="\ta\017bc";// ={'\t','a','\017'/*八进制17*/,'b','c','\0'}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额,一切正常。。。。。
追问
为什么有的输出五颗星,有的输出六颗星??
追答
因为第二个\018是两个字节直接的\是八进制,没有8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询