求解!C++程序出现问题!
题目:设计重载函数,使用按位异或(^)运算,实现快速交换两个整型变量和浮点型变量的值。下面是我自己打的源代码,但是运行的时候出现了一点问题,如图:
程序运行的时候为什么会多出来两个0?是不是和return有关系?不太懂return,希望能帮助我解决一下,谢谢!
程序代码:
#include<iostream> using namespace std; int zhengxing(int,int); double fudian(double,double); int main() { cout<<zhengxing(21,33); cout<<fudian(123.456,666.666); return 0; } int zhengxing(int a,int b) { cout<<"整型变量交换前a="<<a<<"\tb="<<b<<endl; a=a^b; b=a^b; a=a^b; cout<<"整型变量交换后a="<<a<<"\tb="<<b<<endl; return 0; } double fudian(double a,double b) { cout<<"浮点型变量交换前a="<<a<<"\tb="<<b<<endl; int*ap,*bp; ap=(int*)(&a); bp=(int*)(&b); *ap=(*ap)^*(bp); *bp=(*ap)^*(bp); *ap=(*ap)^*(bp); ap++; bp++; *ap=(*ap)^*(bp); *bp=(*ap)^*(bp); *ap=(*ap)^*(bp); cout<<"浮点型变量交换后a="<<a<<"\tb="<<b<<endl; return 0; }