C++............

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:36:44
#include<stdio.h>
void main(){
int t,x,y;
int *p1=&x,*p2=&y;
scanf("%d,%d",p1,p2);
t=*p1;
*p1=*p2;
*p2=t;
printf("%d,%d",*p1,*p2);
}
输入两个数,交换输出,帮我看看指针哪错了?

t=*p1;
*p1=*p2;
*p2=t;
没错,但是这里使用隐式转换将int*保存到了int变量里面,虽然对整体没什么影响,但是还是。。。

好像是没错嘛。
不过那二楼的是不对的,p1,p2已经是指针了,scanf不需要求址运算,printf那句就更不对了。

没错阿,运行正确。

VC里测试过了,没问题

scanf("%d%d",&p1,&p2);
printf("%d%d",&p1,&p2);