广东海洋大学:《C++程序设计》第八章 指针与引用

A的外的出》净的出《的要的《图的《的气

教学内容: 81指针的概念及其运算 82void指针和 const指针 8.3指针与数组 84指针与字符串 85指针与函数 86动态内存分配 8.7引用 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 2 教学内容: 8.1 指针的概念及其运算 8.2 void指针和const指针 8.3 指针与数组 8.4 指针与字符串 8.5 指针与函数 8.6 动态内存分配 8.7 引用

教学目的: 熟练掌握指针的概念、定义、初始化及指针运算 团掌握指针与数组、函数、字符串等的联系; 区掌握动态空间操作; 区掌握引用的定义格式及其使用规则 C++程序设计课件设计制作:徐龙琴 3
C++程序设计课件 设计制作:徐龙琴 3 熟练掌握指针的概念、定义、初始化及指针运算 掌握指针与数组、函数、字符串等的联系; 掌握动态空间操作; 掌握引用的定义格式及其使用规则 教学目的:

§81指针的概念及其运算 若定义了一个变量,编译系统就会根据定义中变 量的类型,为其分配一定字节数的内存空间(如:字 符型占1字节、整型占2字节、实型占4字节、双精度 型占8字节.… v ] int a=1, b=2: float x=3.5 a b 10121013101510161201120212031204 每个变量的地址是指该变量所占存储单元的第一个字节的 地址。在此称的a地址为:1012;b为1015;x为1201 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 4 §⒏1指针的概念及其运算 若定义了一个变量,编译系统就会根据定义中变 量的类型,为其分配一定字节数的内存空间(如:字 符型占1字节、整型占2字节、实型占4字节、双精度 型占8字节……)。 例:int a=1, b=2; float x=3.5; 每个变量的地址是指该变量所占存储单元的第一个字节的 地址。在此称的a地址为:1012;b为1015;x为1201 a 1012 1013 b 1015 1016 x 1201 1202 1203 1204

例如:语句prn(9%d,a+b)的执行是这样的: ①依变量名与地址的对应关系(此对应关系是 在编译是确定的)找到变量a的地址1012和变 量b的地址1015 ②从1012开始的两个字节中取出a的值(1);再 从1015开始的两个字节中取出b的值(2) ③将a的值(1)与b的值(2)相加后,按“%d”格式 输出 总之:变量和变量内存地址有一一对应关 系,变量的地址我们又称变量的指针。 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 5 例如:语句 printf(“%d”, a+b); 的执行是这样的: ① 依变量名与地址的对应关系(此对应关系是 在编译是确定的)找到变量a的地址1012和变 量b的地址1015 ② 从1012开始的两个字节中取出a的值(1);再 从1015开始的两个字节中取出b的值(2) ③ 将a的值(1)与b的值(2)相加后,按“%d”格式 输出 总之:变量和变量内存地址有一一对应关 系,变量的地址我们又称变量的指针

1 指针概念 指针是一个地址,是一个地址常量,若我们要存 放该地址常量的值,可用定义一个变量来存放。 指针变量是一个变量,它和普通变量一样占用一 定的存储空间。但与普通变量不同之处在于,指针变 量的存储空间存的不是普同数据,而是一个地址,因 此指针变量是一个地址变量。 a p1012 2002 10121013 变量p指向了变量a C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 6 指针变量是一个变量,它和普通变量一样占用一 定的存储空间。但与普通变量不同之处在于,指针变 量的存储空间存的不是普同数据,而是一个地址,因 此指针变量是一个地址变量。 指针是一个地址,是一个地址常量,若我们要存 放该地址常量的值,可用定义一个变量来存放。 a 1012 1013 p 1012 2002 变量p指向了变量a ⒈指针概念

◇变量的指针和指向变量的指针变量 ◆变量的指针:即变量的地址 ◆指针变量:存放变量地址的变量是指针变量,用 来指向另一个变量。 ◆指针变量和它所指向的变量之间的关系的表示: ■在程序中用“*”号表示“指向“,如:p代表指 针变量,而*是p所指向的变量,见下图 p *p &P1012 a 2002 1012 可以看到*p也代表一个变量,它和变量a是同一 回事。因此语句a=1;和*p=1;的作用相同 C++程序设计课件设计制作:徐龙琴 7
C++程序设计课件 设计制作:徐龙琴 7 ◆ 指针变量和它所指向的变量之间的关系的表示: ■在程序中用“*”号表示“指向“,如:p代表指 针变量,而*p是p所指向的变量,见下图 1012 p 2002 a 1012 1 *p ■ 可以看到*p也代表一个变量,它和变量a是同一 回事。因此语句 a=1;和 *p=1;的作用相同 &P ◇变量的指针和指向变量的指针变量 ◆变量的指针:即变量的地址 ◆指针变量:存放变量地址的变量是指针变量,用 来指向另一个变量

2指针变量定义格式: 数据类型*指针变量名; ◆数据类型:指该指针变量所指的变量的类型。 ◆大:是一个说明符,用来说明该变量是指针变量 ◆指针变量名:是用户自定义的任意合法的标识符。 例:f1oat*p1,*p2;(p1和p2是指向实型变量的指针变量) char *kp (p是指向字符型变量的指针变量) C++程序设计课件设计制作:徐龙琴 8
C++程序设计课件 设计制作:徐龙琴 8 ⒉指针变量定义格式: 数据类型 *指针变量名; float *p1, *p2; (p1和p2是指向实型变量的指针变量) char *p; (p是指向字符型变量的指针变量) 例: ◆ 数据类型:指该指针变量所指的变量的类型。 ◆ *:是一个说明符,用来说明该变量是指针变量 ◆ 指针变量名:是用户自定义的任意合法的标识符

3指针初始化格式: 数据类型*指针名=初始地址; 例: float x;等价: float*p,x; float *kp=&x p=&x;//p只能指向fat型变量 注意:①所有指针变量在使用之前都要有确定的指向,如果暂时不知 道给指针变量赋什么值,就赋NULL(它是 iostream. h头文件 中的预定义符),值为“NULL”的指针称为空指针。 ②指针变量占4个存储单元,不能将一个整型数据赋给指针变量 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 9 ⒊指针初始化格式: 数据类型 *指针名=初始地址; 注意: ①所有指针变量在使用之前都要有确定的指向,如果暂时不知 道给指针变量赋什么值,就赋NULL(它是iostream.h头文件 中的预定义符),值为“NULL”的指针称为空指针。 ②指针变量占4个存储单元,不能将一个整型数据赋给指针变量 例: float x; float *p=&x; 等价:float *p,x; p=&x;//p只能指向float型变量

注意: &:它是取地址运算符,即取&运算符右侧的对象的地址 具*:它是指针运算符,它有两个含义: 在定义时*指后面的变量是指针变量:char*cp; ■除定义之外*指取指针所指向的变量的值 如: char *cp=&a;∥cp指a的值 cp=2 将2的值赋给a 例:若int*p,a=1;则下列语句的含义是: p=&a;将a的地址赋给p a=米p; 将p所指向的值赋给a p=&(*p) /将p所指向的值的地址赋给p a=米(&a) 将a的值赋给a C++程序设计课件设计制作:徐龙琴 10
C++程序设计课件 设计制作:徐龙琴 10 注意: &:它是取地址运算符,即取&运算符右侧的对象的地址 * :它是指针运算符,它有两个含义: 在定义时* 指后面的变量是指针变量:char *cp; 除定义之外* 指取指针所指向的变量的值。 如:char *cp=&a; //*cp指a的值 *cp=2; //将2的值赋给a 例:若int *p,a=1; 则下列语句的含义是: p=&a; a= *p; p = &(*p); a = *(&a); // 将a的地址赋给p //将p所指向的值赋给a //将p所指向的值的地址赋给p //将a的值赋给a
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 广东海洋大学:《C++程序设计》结构中的有关例题.doc
- 广东海洋大学:《C++程序设计》第10章 结构体.ppt
- 广东海洋大学:《C++程序设计》第10章 练习题.ppt
- 广东海洋大学:《C++程序设计》第11章 类与对象的练习题.ppt
- 广东海洋大学:《C++程序设计》第11章 类与对象.ppt
- 广东海洋大学:《C++程序设计》第12章 继承与派生类.ppt
- 广东海洋大学:《C++程序设计》第12章的练习题.ppt
- 广东海洋大学:《C++程序设计》第16章 异常处理.ppt
- 广东海洋大学:《C++程序设计》第15章 模板的使用.ppt
- 广东海洋大学:《C++程序设计》第14章 输入输出流.ppt
- 广东海洋大学:《C++程序设计》_第13章运算符重载.ppt
- 广东海洋大学:《C++程序设计》实验10 类和对象的答案.doc
- 广东海洋大学:《C++程序设计》实验9 类和对象.doc
- 广东海洋大学:《C++程序设计》实验9 类和对象.doc
- 广东海洋大学:《C++程序设计》实验8 结构体的应用答案.doc
- 广东海洋大学:《C++程序设计》实验8 结构体的应用.doc
- 广东海洋大学:《C++程序设计》实验6 数组的应用答案.doc
- 广东海洋大学:《C++程序设计》实验6-1数组的应用答案.doc
- 广东海洋大学:《C++程序设计》实验7-1指针的应用2.doc
- 广东海洋大学:《C++程序设计》实验7 指针的应用.doc
- 广东海洋大学:《C++程序设计》第八章 练习题.ppt
- 广东海洋大学:《C++程序设计》第七章 数组.ppt
- 广东海洋大学:《C++程序设计》第七章练习题.ppt
- 广东海洋大学:《C++程序设计》第六章 程序结构.ppt
- 广东海洋大学:《C++程序设计》第五章练习题.ppt
- 广东海洋大学:《C++程序设计》第五章 函数.ppt
- 广东海洋大学:《C++程序设计》函数的调用过程.ppt
- 广东海洋大学:《C++程序设计》第四章 过程化语句.ppt
- 广东海洋大学:《C++程序设计》_第四章练习题(流程控制语句).ppt
- 广东海洋大学:《C++程序设计》第三章 表达式和语句.ppt
- 广东海洋大学:《C++程序设计》第二,三章题(数据类型运算符表达式).ppt
- 广东海洋大学:《C++程序设计》第二章 数据类型与输入输出.ppt
- 广东海洋大学:《C++程序设计》第一章 C++入门.ppt
- 广东海洋大学:《C++程序设计》VC++6.0简介.ppt
- 广东海洋大学:《C++程序设计》第一章练习题.ppt
- 广东海洋大学:《C++程序设计》期末考卷A.doc
- 广东海洋大学:《C++程序设计》期末考卷B.doc
- 广东海洋大学:《C++程序设计》复习.ppt
- 广东海洋大学:《C++程序设计》考题.doc
- 广东海洋大学:《C++程序设计》复习续.doc