c语言问题,帮我看一下这道奇葩的题怎么回事?为什么运行是这个结果?#includeint 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("

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 05:45:01

c语言问题,帮我看一下这道奇葩的题怎么回事?为什么运行是这个结果?#includeint 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("
c语言问题,帮我看一下这道奇葩的题怎么回事?为什么运行是这个结果?
#includeint 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;}

c语言问题,帮我看一下这道奇葩的题怎么回事?为什么运行是这个结果?#includeint 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("
哪儿奇葩了?
#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;
}