例10.19用指针变量来处理例10.18问题。
 main()
{char a[]="I am a Boy.",B[20],*p1,*p2;
int i;
   p1=a;p2=B;
for(;*p1!=′\0′;p1++,p2++)
  *p2=*p1;
*p2=′\0′;
   printf("string a iS:%S\n",a);
printf("string B iS:");
for(i=0;B[i]!=′\0′;i++)
  printf("%C",B[i]);
printf("\n");
   }
p1、p2是指针变量,它指向字符型数据。先使p1和p2的值分别为字符串a和B的首地址。*p1最初的值为‘I’,赋值语句“*p2=*p1;”的作用是将字符‘I’(a串中第1个字符)赋给p2所指向的元素,即B[1]。然后p1和p2分别加1,指向其下面的一个元素,直到*p1的值为‘\0’止。注意p1和p2的值是不断在改变的,见图10.34的虚线和p1′、p2′。程序必须保证使p1和p2同步移动。