c语言问题,如图,为什么输出3,3,3而不是2,2,3?

如题所述

因为你给 a b c 赋予了相同的地址他们指向同一个数据,*a=1;*b=2;*c=3;一行该地址下面的值被三次分别更改为了1、2、3;你应当更改为:
a=(int*)malloc(3*sizeof(int));
b=a+1;c=b+1;
然后后面相同就对了
温馨提示:答案为网友推荐,仅供参考
相似回答