欢迎来到天天文库
浏览记录
ID:45386577
大小:218.50 KB
页数:32页
时间:2019-11-12
《whxC语言的复合数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章C++语言的复合数据类型本章要点:指针的定义和使用引用的定义和使用数组的定义和使用vector容器的定义和使用字符串的定义和使用枚举的定义和使用4.1循序渐进学理论4.1.1指针的定义和使用1.指针的概念指针变量是一种特殊的变量,用于保存某个变量、对象或者函数的地址值。可以通过指针对那些存放在存储器中的数据进行读写操作。2.指针的定义指针的定义格式如下(方括号“[]”中的内容是可选的):[存储类型]<类型>*<指针名>[=<初值>]例如:int*ip1,*ip2;//定义指向int型对象的指针ip1和ip2每个指针都必须要指定相关的数据类型,这对指针来说是非常重要的
2、,因为在指针变量中存放的内容是地址,而不是具体的数据,编译器只能根据指针的数据类型来决定如何操作该指针指向的数据。3.指向常量的指针和常量指针的定义指向常量的指针本身并不是常量,而是指向一个常量对象,通常用作函数的形参,确保传递给函数的对象在函数体内不会被改变。例如:constdouble*dp;//dp是指向double型常量的指针也可以定义一个常量指针,其自身是常量,不能被改变,但是可以通过它指向其他的常量或者变量。常量指针的定义看上去有些别扭,例如:constdouble*constdp1;double*constdp2;4.指针变量的赋值指针在没有被赋值前是不能被使用的,给指
3、针变量赋值有三种形式:取地址符“&”赋值、指针间赋值和数组名或者函数名赋值。C++语言规定“数组名”和“函数名”代表数组或函数的地址。下面是一些为指针赋值的示例:intival=2938;int*ip1=0;int*ip2=&ival;ip1=ip2;//①注意:指针不能被赋予不是地址的值,也不能被赋予与该指针类型不同的其他类型的对象的地址,这些都会导致编译错误。有一个特例,空指针能够被赋予任何类型的对象的地址。5.指针的使用指针能够被用来作为函数参数,传递数组或类对象,或者管理动态分配的变量和对象,最典型的用法是构造链表和树。通过解引用运算符“*”能够间接访问指针所指向的对象,例如
4、:inta,*pa,b=2032;pa=&a;//通过赋初值使指针变量pa指向a*pa=b;//将b的值赋给pa指向的变量,即a=2032;指针变量的本身也可以用于算术运算,常见的运算有:(1)指针变量+整数(2)指针变量–整数(3)指针变量++++指针变量指针变量----指针变量(4)指针变量1–指针变量24.1.2引用的定义和使用1.引用的概念所谓引用,就是某一个变量或者对象的另一个名字,所以又被称作“别名”。比如,唐朝大诗人李白,字太白,“太白”二字就是李白本人的一个引用。引用不是变量,其本身没有值和地址,不能占用任何的内存空间。其典型用法是用作函数的形参和返回值。2.引用的定
5、义引用的定义格式如下:<类型>&<引用名>=<初始值>;其中,引用的类型必须和被引用变量或对象的类型相同,“&”是取地址符。引用在被定义的同时,必须被初始化,指出该引用是哪个变量或对象的别名,否则会导致编译错误。一旦被初始化,该引用就不能再指向其他的变量或对象。例如:intha=256,*pi=&ha;int&refHa1=ha;//指向整型变量ha的引用int*&refHa2=pi;//指向整型指针pi的引用。3.引用的使用引用只是某个变量或对象的“别名”,它的值和地址都与被引用的变量或对象的值和地址值相同,对引用的所有操作实际上都是应用在被引用的变量或对象身上。指针和引用的区别:
6、(1)引用在定义时必须被初始化,而指针则可以随意;(2)指针可以被引用,但引用不能被引用;(3)指针是变量,可以指向不同的变量或对象,而引用必须始终指向某个变量或对象。【例4-2】分析下列程序的运行结果。#include"stdafx.h"#includeusingnamespacestd;voidmain(){intival=2048,a=256,*pi=&a;int&refVal=ival;int*&refPi=pi;ival++;//①cout<<"refVal="<7、
7、
此文档下载收益归作者所有