int i = 2;
int j = 8;
int *p = &i;
int *q = &j;
所以此时很明显p指向2,q指向8。
(*p) = (*q);
现在指针 p 指向 q,而 q 又指向 j。j = 8 所以 p 应该指向值 8。最后一部分是:
i++;
printf("%d %d\n", *p, *q);
其输出是 9 8。但是,我不明白这一点,因为 p 指向 q,所以指针 p 是否应该不受此更改的影响,因为它指向 8?为什么 8 加 1?p 最初指向 i,但它改变了指向 q 的指针,所以我不明白这个结果。
编辑:谢谢大家。你所有的解释对我来说都很有意义。