C++中引用&、const的用法

版权声明:原文地址https://coderjeremy.github.io/ https://blog.csdn.net/Coder_Jeremy/article/details/58258790

& (隐式指针)

在变量声明时出现叫引用运算符(包括函数参数声明和函数返回类型的声明),其他地方都是地址运算符

简单理解就是对于某一变量找到另一个名称和它对应,本质上是同一内存变量。

#include <iostream>
using namespace std;
int main(){
    int i=2;
    int &ir=i;
    cout<<i<<" "<<ir<<endl;}

ir 和 i 是同一内存变量,对 ir 的操作就是对 i 的操作,反之对 i 进行操作,ir 也会进行相应的变化。

注意
1 . 不能建立引用的引用
2 . 不能建立引用数组
3 . 不能建立数组的引用
4 . 可以建立指针的引用,但是不能建立指向引用的指针
int *p = m ;
int *&pr = p;(指针的引用)


const 常量

const 常量类型 常量名 = 常量值

const 常量必须在定义时初始化,且常量定义就不能修改
//#define 采用宏代换的方式进行常量的处理,不具有类的检查机制,存在不安全性

const 与指针

三种情况:
1. type *const p ——>常量指针,不能被修改,内存区域是变量,可修改
2. type const *p / const type *p ——>指向常量的指针,指针是变量,可指向其他内存单元,但是所指向的单元是常量,不能修改
3. const type const *p ——>指向常量的常量指针,指针及其指向内存单元都不能被修改

const 与引用

const 使引用成为不允许被修改的常量引用
const 引用可以用常量初始化,但非const引用不能用常量初始化
int &ir = 3 ×
const int &ir = 10 √ (编译器生成了一个临时对象,如何让引用指向这个对象)
eg: cost int &ir = 10 ;
{ int temp = 10 ; const int &ir = temp ; }


猜你喜欢

转载自blog.csdn.net/Coder_Jeremy/article/details/58258790