请解析一下这个程序

来源:百度知道 编辑:UC知道 时间:2024/05/20 07:24:39
#include <stdio.h>
main()
{
char *s="China Beijing 2008 Olympic Games";
char *p;
p=s;
while((*p)!='')
p++;
p='\0';
printf("%s\n",s);
printf("%s\n",++p);
}

这个语句printf("%s\n",++p);是什么意思?为什么运行结果看似没有运行这条语句啊?最好还是详细讲解一下这个程序.

include <stdio.h>
main()
{
char *s="China Beijing 2008 Olympic Games";
char *p;
p=s;
while((*p)!='')
p++;
p='\0'; /* 修改为 *p='\0'; */
printf("%s\n",s);
printf("%s\n",++p);
}

我的理解是首先得把
p='\0'; /* 修改为 *p='\0'; */ ;

因为在自定义的char *s后自动带有\0,而将*s赋给*p时,并不将其后的\0赋给*p,故我们得手动的给*p后加个\0。。
这是我的理解,也不晓得对不对啊···
好久都没碰c了啊···

没看明白while循环里的条件。
(*p)!=''空字符能通过编译?