c++ 返回 常引用
来源:百度知道 编辑:UC知道 时间:2024/06/22 22:15:15
int &Max(int &a, int &b)
{
return a > b ? a : b;
}
const int &Max1(int &a, int &b)
{
return a > b ? a : b;
}
具体有什么区别,什么时候返回引用,什么时候返回常引用
请举例解释, 谢谢!!!
谢谢大家的回答
const int &Max(int &a, int &b)
{
return a > b ? a : b;
}
int a = 2, b = 1;
int &c = Max(a, b);
c = 3;
这时候 c 就成了 a 的常引用
a 的值 改变不会影响 c,c 的值 改变也不会影响 a
如果 a c 不是整数 是一个类的对象,a c 就是两个不同的实例了吗?
这样一个程序
#include <stdio.h>
const int &Max(int &a, int &b);
int main(void)
{
int a = 2, b = 1;
int &c = Max(a, b);
c = 3;
printf("a=%d", a);
}
const int &Max(int &a, int &b)
{
return a > b ? a : b;
}
c = 3 以后 a 还是 2,并没有改变
这里 通过看 a 和 c 的地址,a 和 c 的地址是不同的,根本不是同一个变量
#include <stdio.h>
int &Max(i
比如我有个程序,有两个整数,我想给较大的数重新赋值为10,就要用引用,因为我要改变变量的值.加了const就会出错,因为常量无法修改.
#include<iostream>
#include<math.h>
using namespace std;
//const int &Max(int &a,int &b)会编译错误
int &Max(int &a, int &b)
{
return a > b ? a : b;
}
void main()
{
int p=2,q=1;
Max(p,q)=10;
printf("%d %d",p,q);
}
但如果我只想知道较大的值是多少,并不想对较大的变量进行修改,就可以用返回常引用.
常引用就是防止改变被引用的量
tanyuguo 说的很对
我看你是理解有误
c 就成了 a 的常引用 //没有依据 错的
a 的值 改变不会影响 c,c 的值 改变也不会影响 a //更是无从谈起
a c 就是两个不同的实例了吗? //引用怎么会是两个实例 它们是同一个实例
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。
const使用:
1. 用于指针的两种情况:const是一个左结合的类型修饰符.
int const *A; //A可变,*A不可变
int *const A; //A不可变,*A可变
2.限定函数的传递值参数:
void function(const int Var); //传递过来的参数在函数内不可以改变.
3.限定函数返回值型.
const int function(); //此时const无意义