第1个回答 2013-04-08
输出为5,6。反斜杠在C语言中被用作转义字符,如果要输出反斜杠字符本身,则在程序中必须写成\\。在你上面的程序中,\n是一个字符,\\是一个字符,因而在取字符串长度时,就是5;因为s是一个字符数组,而用来对其进行初始化的字符串是以\0结尾(编译时会自动加上),所以sizeof(s)是6。
第2个回答 2013-04-08
输出:5,6.原因:字符串内容为一个换行符、三个数字、一个反斜杠,共是5个字符,长度为5. 有因为字符串最后有一个“\0”字符,所以大小为6.注意:“\n”和“\\”分别表示换行符与一个反斜杠。
第3个回答 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
望采纳
第4个回答 2013-04-09
5,6才是对的,“\\”有转义的作用,表示一个“\”,“\n”一样有转义作用,是一个字符。sizeof的话,应该算上"\0",他是字符串结束符,每个字符串都有一个“\0”