- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C标准教程03-3.复合数据类型
1-* 北京源智天下科技有限公司 联系方式: 复合数据类型 指针类型 引用类型 数组类型 枚举类型 结构体类型 类类型 指针类型——指针变量的定义 C++中的指针是一种类型修饰符。在定义变量时,在变量名的前面加上“*”即表示相应变量是指针类型其大小固定为4字节。 指针变量的一般形式如下。 基类型 * 指针变量名 因为指针变量就是地址的映射,每个变量都有个对应的地址,为此C++又提供了一个操作符来取某个变量的地址“”,称为取地址操作符。其与“数字与”操作符一样,不过它总是在右侧接数字(而不是两侧接数字)。 “”的右侧只能接地址类型的数字,它的计算就是将右侧的地址类型的数字简单的类型转换成指针类型并进而返回一个指针类型的数字,正好和取内容操作符“*”相反。 指针类型——指针变量的分类与实例 C++中的指针实质上是指针类型的数据,可以是“变量”也可以是“常量”,它里面存储的数值常被解释成为内存里的一个地址。要明白一个指针到底是指常量还是指变量要根据它所属的那个整句来进行判断。C++中的指针按照它所指向的对象可以划分为变量指针、数组指针、函数指针、对象指针、类的成员数据指针和类的成员函数指针。 引用类型——引用类型的基本特性 在定义变量时,在变量名的前面加上“”即表示相应变量是类型类型。 引用类型的一般形式如下。 基类型 引用变量名 = 变量名 格式说明:引用类型定义必须初始化,注意这里的指的是引用类型,而不是指针的地址操作符,注意两者之间的区别。 请参考以下几行代码。 int v, k, h; int rv = v; //声明v的引用rv rv=3; //此时v的值也同时变成了3 v=5; k=rv+2; //此时k=5+2=7 h=12; rv=h; rv=20; 引用类型——引用类型函数参数传递中的作用 在C++中,给一个函数传递参数有3种方法,分别是传递对象本身、传递指向对象的指针和传递对象的引用。 引用类型——关于引用类型的说明 使用引用类型必须注意以下事项。 对象和对象的引用在某种意义上是一个东西,访问对象和访问对象的引用其实访问的是同一块内存区; 使用对象和使用对象的引用在语法格式上相同; 引用必须初始化; 引用在初始化中被绑定到某个对象上后,将只能永远绑定这个对象; 基类类型的引用可以被绑定到该基类的派生类对象; 用传递引用的方式给函数传递一个对象的引用时,只传递了该对象的地址,系统消耗较小,在函数体内访问形参,实际是访问了这个作为实参的对象; 一个函数如果返回引用,那么函数调用表达式可以作为左值。 数组类型——数组的声明与赋值 数组的申明方法很简单,在C/C++程序设计语言中,可以使用以下形式声明数组。 char a[100]; //表示字符数组a有100个元素 int ab[3]; //表示整型数组ab有3个元素 //符号长整型数组abc有12个元素 unsigned long abc[12]; 格式说明:从上面的代码可以看出,数组名后面会跟一个中括号,中括号里面的数字表示,数组含有多少个元素。 例如int ab[4]中含有4个整型元素,由于数组的下标是以0开始计算,所以int ab[3]含有的4个整型元素分别是ab[0]、ab[1]、ab[2]和ab[3],其示意图如下。 数组类型——数组与指针 在C/C++程序设计语言中,数组与指针有很多相同的地方,但是也有差别。 数组与指针的主要差别有如下两点(假设有数组int a[10],指针int *p,且p指向数组a的第一个元素的地址,即p = a)。 数组名是一个常量,不能进行自增等运算;而指针是一个变量,能进行自增等运算。即a++是错误的,但是p++是正确的。 数组利用下标引用数组中的数据,指针利用取值运算符引用所指向的数据。即数组引用数组中的数据写作a[0],而使用指针则写作*p,其值都是数组a的第一个元素的值。 数组与指针的相同点有如下几点(假设同样有数组int a[10],指针int *p,且p指向数组a的第一个元素的地址,即p = a)。 得到int a[10]数组的第i个数据,数组或指针都可以写成a[i]或p[i]形式。 得到int a[10]数组的第i个数据,数组或指针都可以写成*(a + i)或*(p + i)形式。 得到int a[10]数组的第i个数据的地址,数组或指针都可以写成a + i或p + i形式。 数组类型——指针数组 指针数组即指针的数组,其实它是一个数组,只是数组的每个元素都是一个指针。例如int *pIntValue[5],就是一个指针数组。 数组类型——数组指针 数组指针即数组的指针,其实它是一个指针,更确切
文档评论(0)