引用,引用与指针区别

语法:类型 &引用名=目标变量名;
对数组的引用
语法:类型 (&引用名)[数组中元素数量]=数组名;
对指针的引用

语法:类型 *&引用名=指针名;//可以理解为:(类型*) &引用名=指针名,即将指针的类型当成类型*
常引用
语法:const 类型 &引用名=目标变量名;

4、引用 --- 变量的别名
   引用定义:数据类型  &引用名 = 变量名;
   1、引用就是变量的别名,对引用的操作就相当于对变量的操作
   2、不会给引用分配内存空间,引用和变量共享一块内存空间
   3、一个变量可以有多个引用,但是一个引用只能对应一个变量(因为引用在定义时,必须要进行初始化,
      也就是已经确定了它是这个变量的别名了)
   4、引用也可以有引用
   常引用:
   const 数据类型 &引用名 = 变量名;
   总结:如果常引用是变量的别名,不能通过常引用修改变量的值
         常引用也可以是常量的别名,非常引用不能是常量的别名
   注意:&前有数据类型就是引用,没有数据类型就是取地址

   联系:通过指针和引用都可以访问变量   

#include<iostream>
using namespace std;
int main(){
    double a=10.3;
    int &b=a; //错误,引用的类型必须和其所绑定的变量的类型相同
    cout<<b<<endl;
}

 

#include<iostream>
using namespace std;
int main(){
    int &a; //错误!声明引用的同时必须对其初始化
    return 0;
}


   指针和引用的区别:
   1、指针是间接访问,引用是直接访问
   2、引用必须初始化,指针可以不初始化
   3、指针会分配内存空间,而引用不会分配,和变量共享
   4、指针的指向可以改变,引用不能变成其他变量的引用
   5、指针的运算移动一个数据类型,而引用的运算就是变量的运算
   6、有二级指针(int **),没有二级引用(int &&)
   7、有void *类型的指针,但是没有void类型的引用
   8、指针有数组指针有函数指针,没有数组引用和函数引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值