/*==============Title: copy string==============*/
main()
{
char *a="I am a boy.",b[20];/*可改为char a[]="I am a boy.",b[20];*/
int i;
system("cls");
for(i=0;*(a+i)!='/0';i++) /*for(i=0;a[i]!='/0';i++) OR for(i=0;i<strlen(a);i++)*/
b[i]=a[i]; /*same as *(b+i)=*(a+i);*/
*(b+i)='/0';
printf("string a:%s/n",a);
printf("string b:%s/n",b);
}
printf("string b:%s/n",b);可改写为:
for(i=0;i<strlen(b);i++) | for(i=0;*(b+i)!='/0';i++)
printf("%c",b[i]); | printf("%c",*(b+i));
说明:*(a+i)在一维数组中表示指针变量a所指向的i元素的值,而在二维数组中表示指针变量a所指向的第i行首元素(或称第0列)的地址;
注意值与地址的区别。