没有合适的资源?快使用搜索试试~ 我知道了~
c++程序设计 善于使用指针与引用
需积分: 0 0 下载量 31 浏览量
2022-11-14
21:25:07
上传
评论
收藏 391KB PDF 举报
温馨提示
试读
2页
c++程序设计 善于使用指针与引用
资源推荐
资源详情
资源评论
第
6
章
善
于
使
用
指
针
与
引
用
什
么
是
指
针
地址 内存区的每一个字节有一个编号
内存单元的地址和内存单元的内容的区别
直接存取方式(直接访问方式)
间接存取方式(间接访问方式)
指向
就是通过地址来体现的
用"* "符号表示指向
将地址形象化地称为“指针”
一个变量的地址称为该变量的指针
如果有一个变量是专门用来存放地址(即指针)的,则称为指针变量
变量的指针就是变量的地
址,用来存放变量地址的变
量是指针变量
变
量
与
指
针
定
义
指
针
变
量
一般形式: 基类型 * 指针变量名
在变量名前加一个“ * ”表示该变量是指针变量
指针变量的基类型就是该指针变量指向的变量的类型
定
义
时
注
意
在定义指针变量
时必须指定基类
型
一个变量的指针包括
两个方面的含义
一是以存储单元编号表示的地址(如编号为2000的字节)
二是它指向的存储单元的数据类型(如int,char,float等),即基类型
指针变量时基本数据类型派生出来的类型,它不
能离开基本类型而独立存在
怎么表示指针类型
指向整型数据的指针类型表示为“int * ”,读作 “指 向 int的 指针 "或 简 称 "int指针"
可 以 有 int *,char * , float * 等指针类型
不能用一个整数给一个指针变量赋值
一个指针变量只能指向同一个类型的变量
在说明变量类型时要完整的表达它是指向什么类型数据的指针变量 如:a 是指 向整型数据的指针变量(或int * 型变量
引
用
指
针
变
量
两个与指针变量有关的运算符
&:取地址运算符
*:指针运算符(或间接访问运算符)
例如:&a为变量a的地址,*p为指针变量p所指向的存储单元
例6.1通过指针变量访问整型变量
例6.2输入a和b两个整数,按先大后小的顺序输出a和b(用指针变量处理)。
用指针作函数参数
例6.3题目同例6.2
例6.4输入a、b、c 3个整数,按由大到小的顺序输出
数
组
与
指
针
指向数组元素的指针 例6.5输出数组中的全部元素
用指针变量作函数形参接收数组地址 例6.6将10个整数按由小到大的顺序排列
字
符
串
和
指
针
用字符数组存放一个字符串
例6.7定义一个字符数组并初始化,然后输出其中
的字符串
用字符串变量存放字符串
例6.8定义一个字符串变量并初始化,然后输出其
中的字符串
用字符指针指向一个字符串
例6.9定义一个字符指针变量并初始化,然后输出
它指向的字符串
例6.10将字符串str1复制为字符串str2
函
数
与
指
针
指针变量也可以指向一个函数
一个函数在编译时被分配给一个入口地址
这个函数入口地址就称为函数的指针
可以用一个指针变量指向函数,然后通过该指针变量调用此函数
例6.11求a和b中的大者
指向函数的指针变量的一般定义形式为:函数类型(* 变量名)(函数形参表);
返
回
指
针
值
的
函
数
一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址
其概念与以前类似,只是带回的值的类型是指针类型而已
返回指针值的函数简称为指针函数
定义指针函数的一般形式为:类型名 * 函数名(参数表列);
指
针
数
组
和
指
向
指
针
的
指
针
指
针
数
组
如果一个数组,其元素均为指针类型数据,该数组称为指针数组 即指针数组中的每一个元素相当于一个指针变量,它的值都是地址
一维指针数组的定义形式为:类 型 名 * 数组名[数组长度];
例6.12若干字符串按字母顺序(由小到大)输出
*指向指针的指针
指向指针数据的指针,简称为指向指针的指针
例6.13指向字符型数据的指针变量
*const指针
指向常量的指针变量
定义这种指针变量的一般形式为:const 类型名 * 指针变量名;
经此定义后,不允许通过指针变量改变它指向的对象的值
用指向常量的指针变量只是限制了通过指针变量改变它指向的对象的值
例6.14在函数中改变指针形参所指对象的值
常
指
针
指定指针变量的值是常量。即指针变量的指向不能改变。
一般形式:类型名* const指针变量名;
说
明
这种指针变量称为常指针变量,简称常指针,即指针值不能改变
必须在定义时初始化,指定其指向
指针变量的指向不能改变,但指针变量的指向变量的值可以改变
注意const和 * 的位置。const在 * "之后,请与定义指向常变量的指针变量
的 形式比较(const在类型名前面)
指
向
常
量
的
常
指
针
把以上两种作用叠加在一起,就是指向常量的常指针变量
即指针变量指向一个固定的对象,该对象的值不能改变(指不能通过指针变量改变该对象的值
一般形式:const 基本类型名 * const 指针变量名;
*void指针类型
可以定义一个基类型为void的指针变量(即(void * ) 型变量),它不指向任何类型 的数据
注意:不要把“指向void类型”理解为能指向“任何的类型”的数据,而应理解 为“指向空类型”或“
不指向确定的类型”的数据
有
关
指
针
的
数
据
类
型
和
指
针
运
算
的
小
结
有
关
指
针
的
数
据
类
型
的
小
结
指
针
运
算
小
结
指针变量加/减 一个整数
指针变量赋值
指针变量可以有空值,
即该指针变量不指向任
何变量
注意,P 的值等于N U L L 和 p 未被赋值是两个不同的概念。前者是
有值的(值为 0),不指向任何变量,后者虽未对P 赋值但并不等于p
无值,只是它的值是一个无法预料 的值,也就是P 可能指向某一个
未指定的单元。这种情况是很危险的因此,在引用指针变量之前应
对它赋值
两个指针变量可以相减
两个指针变量比较
若两个指针指向同一个数组的元素,则可以进行比较。指向前面的元素
的指针变量小于指向后面元素的指针变量
对指针变量的赋值应注意类型问题
*引用
什
么
是
变
量
的
引
用
对一个数据可以建立一个“引用”,它的作用是为一个变量起一个别名
注意
引用不是一种独立的数据类型。对引用只有声明,没有定义。必须先定义一个变
量,然后声明对该变量建立一个引用(别名)
声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量
在声明一个引用后,不能再使之作为另一变量的引用
不能建立引用数组
不能建立引用的引用,也没有引用的指针
可以取引用的地址
区别引用声明符&和地址运算符&
引用的简单使用 例6.15通过引用得到变量的值
引
用
作
为
函
数
参
数
将变量名作为实参和形参
这时传给形参的是变量的值,传递是单向的。如果在执行函数期
间形参的值发生变化,并不传回给实参。因为在调用函数时,形参
和实参不是同一个存储单元
例6.16要求将变量i和j的值互换
传递变量的地址
形参是指针变量,实参是一个变量的地址,调用
函数时,形参(指针变量)得到实参变量的地址,
因此指向实参变量单元
例6.17使用指针变量作形参,实现两个变量的值互换
以引用作为形参,在虚实结合时建立变量
的引用,使形参名作为实参的“引用”,即形
参成为实参的引用
例6.18实现两个变量的值互换,用“引用”作形参
区别 前两种方式传递的是实参的值
例6.19对3个变量按由小到大的顺序排序
资源评论
文字搬运工
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功