C语言:读程序写结果 main() { int a=3,b=0; int *p=&a,*q=&b; a=*q;*p=b; printf("%d,%d\n",a,b); }?

#include<stdio.h>
main()
{
int a=3,b=0;
int *p=&a,*q=&b;
a=*q;*p=b;
printf("%d,%d\n",a,b);
}

p指向a,q指向b,后续并没有对p和q更改值的操作(只有对*p赋值)
所以定义后面的两句等同于
a=b
a=b
两次一样的操作
最终a为0,b不变也是0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-28

输出结果是:

0,0

第2个回答  2021-09-28
这个程序在运行后的输出是
0,0
因为p指向a,q指向b
a=*p;就把变量a变为0了;后面的*p=b;只不过是再一次重复了同样的操作。
相似回答