我无法理解以下问题的答案。请帮我 :)
输出是什么:
struct INT
{
int i;
};
typedef struct INT INT;
int Change(INT** INTptr)
{
(*INTptr) = (INT*)malloc(sizeof(INT));
(*INTptr)->i = 1000;
return 500;
}
int main()
{
INT dummy = {750};
INT* ptr = &dummy;
ptr->i = Change(&ptr);
printf("dummy.i = %d, ptr->i = %d\n", dummy.i, ptr->i);
return 0;
}
这是从我的一个朋友那里得到的。
我以为答案是:
dummy.i = 750,ptr->i = 500
但是当我运行代码(GCC编译器)时,我得到:
dummy.i = 500,ptr->i = 1000
可以用不同的编译器来回答我吗?
而且,我还是不明白为什么输出是500和1000...
提前致谢!