c语言反斜杠的问题

main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}这个程序是输出时多少的,为什么?... main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}这个程序是输出时多少的,为什么?
展开
 我来答
blue_darksky
推荐于2018-04-05 · TA获得超过2130个赞
知道小有建树答主
回答量:632
采纳率:0%
帮助的人:785万
展开全部
输出是 6 4
6是strlen(s)的输出结果 字符串"\n123\\" 的长度 其中\n是一个字符 代表“回车”(enter) 其他的1,2,3,\,\ 各占一个字符
4是sizeof(s)的输出结果 char这个类型的长度 为4 代表每个字符占4个字节
\后面跟上特定的字母代表特定的字符 比如\n代表回车 \t代表tab键 等等 因为这些字符无法直接用某个字符直接表示 所以用 \跟字母 的组合代表特殊字符
希望可以帮到你
匿名用户
2013-04-08
展开全部
输出为5,6。反斜杠在C语言中被用作转义字符,如果要输出反斜杠字符本身,则在程序中必须写成\\。在你上面的程序中,\n是一个字符,\\是一个字符,因而在取字符串长度时,就是5;因为s是一个字符数组,而用来对其进行初始化的字符串是以\0结尾(编译时会自动加上),所以sizeof(s)是6。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-08
展开全部
输出:5,6.原因:字符串内容为一个换行符、三个数字、一个反斜杠,共是5个字符,长度为5. 有因为字符串最后有一个“\0”字符,所以大小为6.注意:“\n”和“\\”分别表示换行符与一个反斜杠。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-08
展开全部
输出5,6
char s[]="\n123\\"; s包含6个字节,分别是
\n
1
2
3
\\
\0

strlen(s)只统计s中非0字符的总数,所以不包括结尾的\0,sizeof(s)则返回字符数组的大小,包括\0在内
所以输出5,6

望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c387c8b43
2013-04-09
知道答主
回答量:18
采纳率:0%
帮助的人:11万
展开全部
5,6才是对的,“\\”有转义的作用,表示一个“\”,“\n”一样有转义作用,是一个字符。sizeof的话,应该算上"\0",他是字符串结束符,每个字符串都有一个“\0”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式