码迷,mamicode.com
首页 > 其他好文 > 详细

2.3 复合类型

时间:2018-04-05 17:11:33      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:src   image   color   基本数据   指针   技术分享   数据   引用   标识符   

2.3.1 引用

左值引用,右值引用

引用并非对象,相反的,它只是为了一个已经存在的对象所起的另外一个名字。

 

int i = 20;
double c = 2.25;
int &a = 10;//错误:引用不能与字面值或某个表达式计算值绑定
int &a = i;//a是引用,i是对象
int &a = c;//错误:所有引用类型都需要与对象类型匹配

 

2.3.2 指针

指针与引用的不同:

技术分享图片

 

指针的值(即地址)有以下几种状态:

1.指向一个对象。

 

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

 

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

 

4.无效指针,也就是上述情况以外的其他值。

试图拷贝或访问无效指针都将引发错误,编译器不负责检查此类错误。

 

5.空指针:

int *p1 = nullptr;
int *p2 = 0;//需要首先#include <csdlib>
int *p3 = NULL;

NULL为预处理变量,C++中在cstdlib中,#define NULL 0

 

6.void*指针

可以存放任意类型的地址,但我们不知道这个指针的类型。

 

2.3.3 理解复合类型的声明

int i=1024,*p=&i,&r=i;

 

在同一条定义语句中,虽然基本数据类型只有一个,但是声明符的形式却可以不同。

 

int*p中int是基本数据类型,*是类型修饰符(解引用符),类型修饰符是声明符的一部分,p是变量标识符。

(从右到左)

 

2.3 复合类型

标签:src   image   color   基本数据   指针   技术分享   数据   引用   标识符   

原文地址:https://www.cnblogs.com/Mayfly-nymph/p/8723287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!