c++中&的用法

简介:

&在c++中有两个用法,

第一 做取地址运算符。

第二 做引用。

  1.     引用通俗来说就是一个变量的别名。

        int val=3;

        int &yin = val; //这时候yin 就是 val的一个引用, 且注意引用定义必须要直接初始化

        cout <<"Value"<< yin <<"对比"<<val<<endl; //他们值完全相同

        cout << "Address"<<yin <<"对比"<<val<<endl;//他们地址完全相同


2.    将引用做函数参数时,对实参的要求必须是变量,不可以是表达式

        例如

        double cube(double &a){

         a = a*a;

         return a;

        }

        cout << cube(x + 2.0)<<endl;//不对的,不能是表达式

    

3.     double refcube(const double &ra){

    return ra*ra*ra;

    }

        int main(){

    double side = 2.0;

    long edge = 5L;

    double c4 = refcube(edge);

   double c5 = refcube(7.0);

           double c6 = refcube(side + 10.0); 

//虽然形参与实参类型不同。但是因为形参是const double &ra 系统会产生临时变量,来存储。

            double && c7 = side + 3.0;  //这是c++11新增的另一种引用,可以引用右值    

            cout << c4 << endl;

         cout << c5 << endl;

         cout << c6 << endl;

            cout << c7 << endl;

    system("pause");

    return 0;

        }


注意:引用参数应尽可能的声明为const 。

 好处:1.可以避免无意中修改数据。当然要求必须修改实参的例外

        2.函数能够处理const 和非const 的实参。

        3.const 引用可以处理不同类型的形参,并使用临时变量(字面常量 7.0,表达式 x+3.0)。




本文转自 神迹难觅 51CTO博客,原文链接:http://blog.51cto.com/ji123/1966088,如需转载请自行联系原作者
相关文章
|
7月前
|
存储 算法 编译器
【C++ TypeName用法 】掌握C++中的TypeName:模板编程的瑞士军刀
【C++ TypeName用法 】掌握C++中的TypeName:模板编程的瑞士军刀
506 1
|
6天前
|
存储 安全 编译器
第二问:C++中const用法详解
`const` 是 C++ 中用于定义常量的关键字,主要作用是防止值被修改。它可以修饰变量、指针、函数参数、返回值、类成员等,确保数据的不可变性。`const` 的常见用法包括:
38 0
|
28天前
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
30 3
【C++】map、set基本用法
|
6天前
|
C++
第十三问:C++中静态变量的用法有哪些?
本文介绍了 C++ 中静态变量和函数的用法及原理。静态变量包括函数内的静态局部变量和类中的静态成员变量,前者在函数调用间保持值,后者属于类而非对象。静态函数不能访问非静态成员,但可以通过类名直接调用。静态链接使变量或函数仅在定义文件内可见,避免命名冲突。
19 0
|
4月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
7月前
|
人工智能 机器人 测试技术
【C++】static_cast基本用法(详细讲解)
【C++】static_cast基本用法(详细讲解)
159 0
|
4月前
|
存储 程序员 编译器
c++学习笔记08 内存分区、new和delete的用法
C++内存管理的学习笔记08,介绍了内存分区的概念,包括代码区、全局区、堆区和栈区,以及如何在堆区使用`new`和`delete`进行内存分配和释放。
52 0
|
5月前
|
C++
C++ string中的函数和常用用法
C++ 中string中的函数和常用用法
57 4
|
6月前
|
存储 C++
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
57 7
|
6月前
|
存储 人工智能 C++
map容器在C++中的具体用法以及相关注意点
map容器在C++中的具体用法以及相关注意点
64 1