int *p1;
int *p2;
int str1[100];
p1 = str;
p2 = str;
请问一下修改p1和p2的内容的时候 是不是等同于在修改str[]的内容,p1 p2
在共享一块地址?
P1,P2都等于str[]的首地址,也就是指向同一个地址。
修改p1指向的内容,例如:
for(int i=0;i<100;i++) *p1++=i;相当于修改数组str[]
printf("%d ", *p2++); 会输出数组str[]
如果你是不小心把str写成str1的话,上面的朋友说得没问题,p1和p2都指向整型数组的首地址,修改p1会造成p1和p2的变化,如令*,
str[3]=8;
*(p1+3)=9;
则值发生变化如下:
str[3]=9;
*(p2+3)=9;
值都发生了变化,但p1和p2本身没变化,它们始终指向str数组的首地址。