字符串数组与字符串指针

若有以下程序#include<stdio.h>chara="you";charb[]="Welcome you to China!";
main(){inti,j=0;char
p;for(i=0;b[i]!='\0';i++)
{if(*a==b[i])
{p=a;
for(j=i;*p!='\0';j++)
{if(*p!=b[j])break;p++;}
if(*p=='\0')break;}}
printf("%s",&b[i]);}则程序的输出结果是(D)
A、Chind! B、to Chind! C、me you to China! D、you to China!
这个程序怎么看啊?

供参考:

#include<stdio.h>
char *a="you";
char b[]="Welcome you to China!";
main()
{
    int i,j=0;
    char *p;
    for(i=0;b[i]!='\0';i++)
    {
       if(*a==b[i])//*a = 'y',判断"you" 在字符串 b[]起始位置 i
       {
          p=a;
          for(j=i;*p!='\0';j++)
          {
              if(*p!=b[j])
                 break;
                 p++;
          }
          if(*p=='\0')//如果找到"you" 在字符串b[]中的位置 则跳出for()循环
             break;
       }
    }
    printf("%s",&b[i]);//输出从 i 位置开始的字符串,直到字符串的结束
}