引用和指针 传递参数
2010-11-25 12:30
302 查看
1、引用是建立变量(操作对象)别名,引用声明和变量本身针对的是同一地址。引用声明例为:
int case;
int & citecase=case;
int*pcase=case;
上述语句使case和citecase代表同一变量,它地地址为定义case时分配的内存地址。以上述例子来说明,引用和指针的不同之处我们可以令指针*pcase指向其它变量,但是一旦声明了引用,citecase就只是代表case的一个引用,而不能将它仔用来代表其它变量。例如:
int case1;
*pcase=case; //right
&citecase=case; //error
2、引用传递函数参数
传递引用给函数与传递指针效果一样,传递的是原来的对象或变量,可以对其进行改变。但是要注意二者在调用函数的时候参数写法的区别。
例:
(1)指针传参
void Swap(int * a, int * b);
void main()
{
int x=5;
int y=6;
cout<<"now:"<<x<<y<<endl;
Swap(&x, &y); //采用取地址运算符传入地址
cout<<"later:"<<x<<y<<endl;
}
void Swap(int * a, int * b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
(2)引用传参
void Swap(int &a, int & b);
void main()
{
int x=5;
int y=6;
cout<<"now:"<<x<<y<<endl;
Swap(x, y); //引用传入地址
cout<<"later:"<<x<<y<<endl;
}
void Swap(int & a, int & b)
{
int temp;
temp=a;
a=b;
b=temp;
}
///////////////////////////////////////////////////////
int case;
int & citecase=case;
int*pcase=case;
上述语句使case和citecase代表同一变量,它地地址为定义case时分配的内存地址。以上述例子来说明,引用和指针的不同之处我们可以令指针*pcase指向其它变量,但是一旦声明了引用,citecase就只是代表case的一个引用,而不能将它仔用来代表其它变量。例如:
int case1;
*pcase=case; //right
&citecase=case; //error
2、引用传递函数参数
传递引用给函数与传递指针效果一样,传递的是原来的对象或变量,可以对其进行改变。但是要注意二者在调用函数的时候参数写法的区别。
例:
(1)指针传参
void Swap(int * a, int * b);
void main()
{
int x=5;
int y=6;
cout<<"now:"<<x<<y<<endl;
Swap(&x, &y); //采用取地址运算符传入地址
cout<<"later:"<<x<<y<<endl;
}
void Swap(int * a, int * b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
(2)引用传参
void Swap(int &a, int & b);
void main()
{
int x=5;
int y=6;
cout<<"now:"<<x<<y<<endl;
Swap(x, y); //引用传入地址
cout<<"later:"<<x<<y<<endl;
}
void Swap(int & a, int & b)
{
int temp;
temp=a;
a=b;
b=temp;
}
///////////////////////////////////////////////////////
相关文章推荐
- C++三种参数传递方法(值传递、指针传递、引用传递)的一些知识
- 图解C/C++中函数参数的值传递、指针传递与引用传递
- 函数的参数传递的几种形式(值、地址、引用)及指针基础知识
- 指针和引用的参数传递
- vector数组 传递 引用 指针 参数
- 二叉树算法引发的思考:指针参数传递、引用的陷阱
- 漫谈C指针第十一讲---参数的引用传递
- C++ 参数指针传递、引用传递、值传递的区别
- C++ 常量指针或者常量引用作为函数参数传递的原因
- 一道考察函数参数传递、值传递、指针传递(地址传递)、引用传递
- 参数的值传递,指针传递和引用传递
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- C++参数传递,数组引用传递,保护数组退化为指针
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- (转)二叉树算法引发的思考:指针参数传递、引用的陷阱
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递(着重理解)
- 函数参数异同(值传递、指针传递、引用传递)
- 函数参数用指针或引用传递时发现的一个小问题
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递