看了这段代码测试代码应该就明白了
#include<stdio.h>
int main()
{
char a[10]="hello";
char b[10]="world";
char *c;
char *d;
c=a;
d=c;
printf("d:%s\n",d);
printf("d save content:%d,c content:%d,a address:%d,b address %d\n",d,c,&a,&b);
c=b;
printf("d:%s\n",d);
printf("d save content:%d,c content:%d,a address:%d,b address %d\n",d,c,&a,&b);
return 0;
}
输出内容:
d:hello
d save content:1646883616,c content:1646883616,a address:1646883616,b address 1646883600
d:hello
d save content:1646883616,c content:1646883600,a address:1646883616,b address 1646883600
当指针c指向数组a时候,同时指针d指向c。这时指针d存储的是a的地址,也就是指向a。
当指针c指向数组b时候,这时候指针d存储的内容仍然是a的地址,与c没有关系。