c语言关于程序以及指针的一点小问题

请问以下这个程序的输出是多少?

还有我尝试着用编译器跑这个程序,但一直都是卡了很久之后,运行失败,这是为什么???

#include
int main( void )
{
int *p, *q;
int x, y;
x = 7;
y = 8;
q = &x;
*q = 10;
p = q;
y = *p + *q;
*p = x + y;
printf("x = %d, y = %d\n", x, y );
return 0;
}

答案是x=30 y=20

你用的什么编译器或者IDE?我跑的VC++6..0没有问题,可以正常输出结果。

VS2010也没有问题啊。30,20.可以正常运行的。

答案是30,20。看一下有没有其他错误

我用用DevC++编译器跑,能正输出:X=30,Y=20。不过你的程序的标准输入输出头文件,没添加,是自己忘了写上吗?,如果没加上的话会出错,因为printf是库中的函数,需要调用函数库。