c语言问题,为什么编译时出错?
#include<stdio.h>#include<string.h>main(){charc[]="\441";printf("%d\n",strlen(c));}...
#include<stdio.h>
#include<string.h>
main()
{ char c[]="\441";
printf("%d\n",strlen(c));
} 展开
#include<string.h>
main()
{ char c[]="\441";
printf("%d\n",strlen(c));
} 展开
5个回答
展开全部
编译系统在见到 ' \ ' 时会接着找他后面的字符,把它作为一个字符,所以"\441"进行编译会出现:
too big for character,就是441太大了,比如改成 " \44 "就OK了。嗯,转义字符在谭浩强 C 的48页,C++的24页。
too big for character,就是441太大了,比如改成 " \44 "就OK了。嗯,转义字符在谭浩强 C 的48页,C++的24页。
追问
谭浩强c 48页就只讲了\n这个转义字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\XXX后面XXX是八进制,表示转义字符,转义为ascii字符。\441中441装换成十进制的289,289明显是太大了。如果你在后面输入了单个超过7的数字,\将会失效。比如输入\989,989就会储存在数组的c[0],c[1],c[2]中,而不是装换为ascii值储存在c[0]中。如果你要统计字符,转义后变为一个。
更多追问追答
追问
289为什么太大了?
追答
289ascii码里面没有啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<string.h>
void main()
{ char c[]="\441";
printf("%d\n",strlen(c));
}
#include<string.h>
void main()
{ char c[]="\441";
printf("%d\n",strlen(c));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请去查书 转义符 \ 怎么用的..........
追问
好像找不到,请问在谭浩强《c程序设计》的那一页?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上各位讲解,受教受教!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询