请教高手一道C语言的题

来源:百度知道 编辑:UC知道 时间:2024/05/12 05:11:14
char *s="\\"Name\\Address\n";

指针s所指字符串的长度为_____?为什么呢?

PS:偶才刚开始自学C语言1个月,请高手们多多帮忙呀~~!
这是一道二级的真题。
我仔细对过了,没有打错。

答案是15。不知道怎么回事儿。。。。。。

转意思字符只占一个字节。\\占一个字节,第二个\\占一个字节,\n占一个节,不懂不要乱说,"占一个字节,NameAddress其余的字母各占一个。加起来15。
还有前面的老兄,不要乱搞,\\\这是什么意思,第一个\是转意思字符,后面是个//.不要拆错了。
printf("\\\");打出来的是\\
根本不是编译问题,更不是什么嵌套,嵌套是什么,想必你也知道。。。。这是一个最基本的赋值语句好不好。

"算一个,\\是两个字符 '\',字算一个,共15个

编译根本通不过
应该还少一个\
char *s="\\\"Name\\Address\n";
\\转义为一个,\"转义为一个,\n转义为一个
共15个

这段代码可以验证你的答案,打印出来的结果,就是你所说的为什么
注意:第14个元素是回车符,所以会空一行

#include <stdio.h>
main()
{
char *s="\\'Name\\Address\n";
char temp[20]={0};
int i;
strcpy(temp, s);
for (i = 0; i <= strlen(s)-1; i++)
{
printf("temp[%d] = %c\n", i, temp[i]);
}
printf("*s = %d", strlen(s));
getch();
}

13 个!!!!!!