永发信息网

c语言反斜杠的问题

答案:4  悬赏:0  手机版
解决时间 2021-05-14 09:00
  • 提问者网友:记得曾经
  • 2021-05-14 04:27

main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}

这个程序是输出时多少的,为什么?

最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-05-14 05:55

输出5,6
char s[]="\n123\\"; s包含6个字节,分别是
\n
1
2
3
\\
\0

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

望采纳


char s[]="\\141\141abc\t";


\\


1


4


1


\141


a


b


c


\t


\0


strlen()不计算\0


所以strlen(s)为9.

全部回答
  • 1楼网友:duile
  • 2021-05-14 09:49

输出:5,6.

原因:字符串内容为一个换行符、三个数字、一个反斜杠,共是5个字符,长度为5.

有因为字符串最后有一个“\0”字符,所以大小为6.

注意:“\n”和“\\”分别表示换行符与一个反斜杠。

  • 2楼网友:往事埋风中
  • 2021-05-14 08:26

没有去验证,首先我觉的编译不通过,具体回答留给楼下的人

  • 3楼网友:旧脸谱
  • 2021-05-14 07:10

输出为5,6。

反斜杠在C语言中被用作转义字符,如果要输出反斜杠字符本身,则在程序中必须写成\\。

在你上面的程序中,\n是一个字符,\\是一个字符,因而在取字符串长度时,就是5;因为s是一个字符数组,而用来对其进行初始化的字符串是以\0结尾(编译时会自动加上),所以sizeof(s)是6。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯