C++复合类型

复合类型在C++里有好几种,在这里主要介绍两种:引用和指针

       引用:是C++11中新增加的一种。用来为对象起另外一个名字,引用类型引用另外一种类型。

                定义引用时,程序会把引用以及它的初始值绑定在一起,而不是你将初始值拷贝给引用。

                无法将引用重新绑定到另外一个对象,因此引用定义时必须要初始化。

                                  int  i = 1024;    

                                  int &a = i;       //定义一个引用,a指向i

                                  int &b;           //错误,引用未被初始化

                引用本身不是一个对象,所以不能定义引用的引用。

                                  int &c = a;        //错误

                引用只能绑定在对象上,而不能与字面值或某个表达式的结果绑定在一起。

                                 int &d = 10;      //错误

                为引用赋值:把值赋给了与引用绑定的对象。

                获取引用的值:获取了与引用绑定对象的值。

       指针:指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内可以先后指向几个不同的对象。

                  指针无需在定义时赋初值。

                                 int a = 42;

                                 int *p = &a;          //p存放变量a的地址,或者说p指向变量a的指针。

                  指针的值(地址)应属于下列四种状态之一:

                         1:指向一个对象。

                         2:指向紧邻对象所占空间的下一个位置。

                         3:空指针,意味着没有指向任何对象。

                         4:无效指针。

                  所有指针的类型都要和它所指的对象严格匹配。

                              int obj = 3;

                              double *q = &obj;          //错误

                  注意:void*指针是一种特殊的指针类型,可用于存放任意对象(不分类型)的地址。但是作用有局限。

                             1:用作与别的指针比较。

                             2:作为函数的输入输出。

                             3:用作赋值给另外一个void*的指针。

                        不能直接操作void*指针所指的对象。因为并不知道这个对象是什么类型。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值