文档介绍:大学C++程序设计教程
西安交通大学
计算机教学实验中心.
第7章指针
本章目标
掌握指针的概念和定义方法。
掌握指针的操作符和指针的运算
掌握指针与数组的关系。
掌握指针与字符串的关系。
掌握new和delete操作符作用和使用方法。
学会使用Visual C++帮助系统
1
授课内容
地址与指针
指针运算
指针与数组
动态存储分配
指针数组
指向指针的指针
结构体与指针
指针的初始化
2
地址与指针
地址的概念
什么是地址?
如何表示地址?变量a的地址记作:&a ;
指针的概念
什么是指针?
指针如何表示?
指针是C++语言具有代表性特征的功能之一,利用指针可以直接对内存中不同数据类型的数据进行快速处理,并且它为函数中各种数据的传递提供了简洁便利的方法。
3
指针是与计算机系统内部密切相关的一种处理形式,因此正确熟练的使用指针可以编制出简洁明快、性能高、质量好的程序。
指针变量——专门存放另一变量的地址。
4
…
3
6
7
8
15
16
…
…
…
A公司
B公司
C公司
一排平房
叫地址
在C语言中还存在一种特殊的变量,它同普通变量不同之处在于其存储空间中存放的不是一般数据,而是地址。
5
…
1000
…
…
short a;
float b;
1001
2002
2003
2000
2001
a的地址
b的地址
内存管理
6
取得变量、数组、函数地址的方法
计算机的内存储器就象一个一维数组,每个数组元素就是一个存储单元。
地址是存放信息数据的内存单元的编号。
程序中定义的任何变量、数组或函数等,在编译时都会在内存中分配一个确定的地址单元。
C规定:
变量的地址: 可以用取地址运算符‘&’来获取
数组的地址: 可以用数组名表示
函数的地址: 可以用函数名表示
7
指针的声明
声明的一般格式:
数据类型*指针变量名;
举例:
int * ptr;
float *array;
char *s1,*s2;
指针类型
内存地址值是固定不变的,不同类型的指针本身所占据的存储区域都一样大。
规定了用指针间接访问数据时的访问方式
为指针的算术运算提供依据
8
指针声明的举例
指针在定义后必须初始化才能使用;否则,结果不确定。
指针初始化的一般格式:
指针变量名= 数据对象;
数据对象可以是变量、数组、函数、结构等。
举例:
int *ptr, i=10; ptr=&i; //指向单个变量
char *sp=“string”; //指向字符串
int a[5],*ap; ap=a; //指向数组
int max(),(*fp)(); fp=max; //指向函数
9