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));
}
展开
 我来答
百度网友7b9e46d
2013-02-21
知道答主
回答量:30
采纳率:0%
帮助的人:7.2万
展开全部
编译系统在见到 ' \ ' 时会接着找他后面的字符,把它作为一个字符,所以"\441"进行编译会出现:
too big for character,就是441太大了,比如改成 " \44 "就OK了。嗯,转义字符在谭浩强 C 的48页,C++的24页。
追问
谭浩强c 48页就只讲了\n这个转义字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌不归
2013-02-21 · TA获得超过1682个赞
知道小有建树答主
回答量:1335
采纳率:0%
帮助的人:587万
展开全部
\XXX后面XXX是八进制,表示转义字符,转义为ascii字符。\441中441装换成十进制的289,289明显是太大了。如果你在后面输入了单个超过7的数字,\将会失效。比如输入\989,989就会储存在数组的c[0],c[1],c[2]中,而不是装换为ascii值储存在c[0]中。如果你要统计字符,转义后变为一个。
更多追问追答
追问
289为什么太大了?
追答
289ascii码里面没有啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
跃然儿童
2013-02-21
知道答主
回答量:8
采纳率:0%
帮助的人:3.2万
展开全部
#include<stdio.h>
#include<string.h>
void main()
{ char c[]="\441";
printf("%d\n",strlen(c));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
veket的小号
2013-02-21 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3984万
展开全部
请去查书 转义符 \ 怎么用的..........
追问
好像找不到,请问在谭浩强《c程序设计》的那一页?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逍遥足球子
2013-02-22 · TA获得超过344个赞
知道答主
回答量:236
采纳率:0%
帮助的人:103万
展开全部
楼上各位讲解,受教受教!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式