C++ 引用

目录

1.引用

类型名+&+标识符

 例:int &a=b

1.1.引用必须初始化

1.2.引用数组

1.3.const+&:

1.4.引用和指针的区别:

1.5.引用的注意事项


1.引用

类型名+&+标识符

 例:int &a=b

1.1.引用必须初始化

定义一般变量时:

(1)声明:声明变量类型和名字

(2)定义:根据类型分配内存地址空间

(3) 初始化:将初始值拷贝到变量的内存地址空间中(因此变量的声明,定义和初始化可以分开,不需要一次完成)

定义引用类型时:

将引用直接绑定到初始化对象

因此定义引用类型时必须有初始值对象(必须为左值)

1.2.引用数组

数组的三个例外:

int ar[5]={1,2,3,4,5}

  1. sizeof有type 和num,sizeof(ar)=20

   2.   数组的地址时,要有type和num。

    例:int(*p)[5]=&ar

          sizeof(p)=4

          sizeof(*p)=20

   3.引用时要有类型和大小。int(&br)[5]=ar

注:1.int &ar[5]错误,因为引用不需要空间,需要加括号

       2.引用可以是对指针的引用

        int &*p  error

1.3.const+&:

s1只能读取不能修改

S2可以修改,但不能指向别的地址,别名也不可以

const+&是万能引用,可以引用字面常量,常量,变量,若只有&,没有const是不可以定义字面常量的

1.4.引用和指针的区别:

从语法规则上讲

  1. 指针变量时存储某个 实例(变量或对象)的地址

     引用时某个实例的别名

  1. 程序为指针变量分配内存空间,不为引用分配
  2. 指针在使用是需要解引用要加*,引用可以直接使用
  3. 指针变量的值可以发生改变 ,之后无法改变
  4. 指针变量作为形参时要测试它的合法性,引用不需要
  5. sizeof得到的是指针变量的大小。引用得到的是变量大小
  6. 理论上指针的级别没有限制,但引用只有一级
  7. ++引用与++指针的效果不一样
  8. 对引用的操作直接反应到所引用的实体上
  9. 不可以对函数中的局部变量或对象以引用或者指针方式返回

汇编层面:mov eax, 10h 直接

                mov [eax],10h 间接

1.5.引用的注意事项

1.左值引用不能引用一个常量

2.引用必须初始化,没有空引用

3.没有引用的引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值