来看例子:
void main()
{
int *a,*b,*c;
a=b=c=(int *)malloc(sizeof(int));
printf("%d,%d,%d",(int)a,(int)b,(int)c);
printf("\n");
*a=1;*b=2,*c=3;
a=b;
printf("%d,%d,%d",(int)a,(int)b,(int)c);
printf("\n");
printf("%d,%d,%d",*a,*b,*c);
printf("\n");
system("pause");
}
输出结果:
从输出结果可以看出,从malloc动态分配内存开始,a,b,c的地址就是相同的,即它们存的是同一个变量的地址。
所以更改任何一个所指向的值,其他的两个指向值也会跟着改变。