指针的引用

#include<iostream>
//void swap(const int *&p1, const int *& p2) // int 之前加const会导致swap函数错误,const不能修饰引用,引用不是常量 
void swap( int *&p1, int *& p2) //此处函数的形参p1, p2都是引用

{
//	int *p;
//	*p=*p1;
//	*p1=*p2;
//	*p2=*p;
}

int main() {
	int *a,*b;
	std::cin>>*a>>*b; //输入a,b两变量的值
	swap(a,b); //直接以变量a和b作为实参调用swap函数
	std::cout<< *a << " " <<*b; //输出结果
}



  • const 修饰的参数不能作为左值,如果const修饰的参数作为左值,系统报错;
  • swap函数执行时,会匹配参数类型,如果参数类型不一致或函数不存在,编译器报错。如果指针的引用做形式参数,那些swap函数的实参一定是指针类型,形参是实参的一个别名。

猜你喜欢

转载自javaeye-hanlingbo.iteye.com/blog/2407873
今日推荐