C++学习5 复合类型

#include <iostream>

int main() {
    //复合类型compound type:指基于其他类型定义的类型,如引用和指针
    //声明语句;由一个基本数据类型base type 和紧随其后的一个 声明符declarator 列表组成
    //引用reference :为对象起了另外一个名字,引用类型引用refers to 另外一种类型。
    //通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名

    int ival = 1024;
    int &refVal = ival;  //refVal指向ival (是ival的另一个名字)
    //int& refVal2;      //报错:引用必须被初始化
    std::cout << refVal << '\n';

 

    /***引用:程序把引用和它的初始值绑定bind在一起,而不是拷贝*****/
    //一旦初始化完成,引用将和它的初始值对象一直绑定在一起,所以必须初始化
    refVal = 2;
    int ii = refVal;
    std::cout << ival << '\n';    //为引用赋值实际上把值赋给了引用绑定的对象
    int& refVal3 = refVal;
    int i = refVal;
    std::cout << refVal3 << '\n' << i << '\n';

    int i1 = 1024, i2 = 2048;
    int &r = i1, r2 = i2;
    int i3 = 1024, & ri = i3;
    int& r3 = i3, & r4 = i2;
    r4 += r3;
    r = r + r4;
    std::cout << i2 << '\n'<<i1<<'\n';
    //引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起

    //int& refVal4 = 10;      //引用类型的初始值必须是一个对象 
    double dval = 3.14;
    //int& refVal5 = dval;    //该引用类型的初始值必须是int型对象


    //指针pointer 是 指向 point to 另外一种类型的复合类型
    //指针本身就是一个对象,允许对指针赋值和拷贝,且在生命周期内可以先后指向几个不同对象
    //指针无需在定义时赋初值
    //定义指针 *d ,其中的是变量名
    //如果在一条语句中定义了几个指针变量,每个变量前面都必须有符号*

 

    int  *ip1, *ip2;
    double dp, *dp2;

    //指针存放某个对象的地址,想要获取该地址需要使用取地址符&
    //&取地址&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    int ival1 = 42;
    int *p = &ival1;      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Genesis_jin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值