1. 引用
#include <iostream>
using namespace std;
void swap( int &a, int &b )
{
int temp;
temp=a; a=b; b=temp;
}
int main()
{
int x=3, y=5;
cout<<" x= "<<x<<" y= "<<y<<endl;
swap( x, y );
cout<<" x= "<<x<<" y= "<<y<<endl;
return 0;
}
2. 指针
#include <iostream>
using namespace std;
void swap( int *a, int *b )
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int x=3, y=5;
cout<<" x= "<<x<<" y= "<<y<<endl;
swap( &x, &y );
cout<<" x= "<<x<<" y= "<<y<<endl;
return 0;
}
几个错误举例:
错误示例1:(光改变形参是没有用的)
#include <iostream>
using namespace std;
void swap( int a, int b )
{
int temp;
temp=a; a=b; b=temp;
}
int main()
{
int x=3, y=5;
cout<<" x= "<<x<<" y= "<<y<<endl;
swap( x, y );
cout<<" x= "<<x<<" y= "<<y<<endl;
return 0;
}
错误示例2:(指针概念不清,不知道新定义的指针temp指向哪里)
#include <iostream>
using namespace std;
void swap( int *a, int *b )
{
int *temp;
*temp = *a;
*a = *b;
*b = *temp;
}
int main()
{
int x=3, y=5;
cout<<" x= "<<x<<" y= "<<y<<endl;
swap( &x, &y );
cout<<" x= "<<x<<" y= "<<y<<endl;
return 0;
}
错误示例3:(指针概念不清,交换了地址)
#include <iostream>
using namespace std;
void swap( int *a, int *b )
{
int *temp;
temp = a;
a = b;
b = temp;
}
int main()
{
int x=3, y=5;
cout<<" x= "<<x<<" y= "<<y<<endl;
swap( &x, &y );
cout<<" x= "<<x<<" y= "<<y<<endl;
return 0;
}