文档详情

C++程序设计基础 陆勤 第五章 指针新.ppt

发布:2015-12-14约1.15万字共53页下载文档
文本预览下载声明
5.1 指针变量的说明与赋值操作 5.1.1 指针和地址的概念 直接存取方式:对变量存储单元进行操作 间接存取方式:通过变量的地址存取变量值 指针变量:以地址为值的变量称为指针变量 指针变量a中存放变量b的地址,就称指针变量a指向变量b。 5.1.2 指针变量的说明 一般形式: 类型标识符 *指针变量名; 例1 int *pi, *pj,pk; double *pd; char *pc; 5.1.3 指针变量的初始化 一般形式: 类型标识符 *指针变量名 = 初始地址值; 注意:未初始化的指针不能使用。 例3 设i为1800 int i=200, j; int *ip=i, *jp=j; double *pd=NULL; char *pc=NULL; // NULL为在头标文件stdio.h中定义的 //符号常量,其代码值为0。表示pc是空指针, //即pc不指向任何变量 5.1.4 指针变量的赋值操作 1. 利用赋值语句实现指针变量的初始化操作 例6 int i=200, j; int *pi, *pj; double *pd; char *pc; pi=i; pj=j; pc=0; // 等价于pc=’\0’; 也等价于pc=NULL,0是 // 唯一能够直接赋给指针变量的整数值 2. 指针运算符与* 运算符:取地址运算符,为单目运算符, 右结合性 *符:在变量说明中,仅表示其后是一个指针 变量名。 在引用指针语句中,是取内容运算符。 表示该指针所指变量的内容。 例8 取内容运算符*使用示例 int i=200, j; int *p1, *p2; p1=i; p2=j; j=*p1; *p1=*p1+1; *p2=*p1; 3. 指针所指变量间的赋值操作 例 交换输出两个整型数据。 #includeiostream using namespace std; void main( ) { int i=200, j=500, t; int *pi, *pj; pi=i; pj=j; cout*pi *pjendl; t=*pi; *pi=*pj; *pj=t; cout*pi *pjendl; } 4. 指针变量间的赋值操作 例9 交换输出两个整型数据。 #includeiostream using namespace std; void main( ) { int i=200, j=500; int *pi, *pj, *pt; pi=i; pj=j; cout*pi *pjendl; pt=pi; pi=pj; pj=pt; cout*pi *pjendl; } 5.2 指针运算 5.2.1 指针的赋值运算 指针变量的初始化方法: 把目标变量的地址赋予同类型的指针变量 把指针变量的值赋予同类型的另一指针变量 把数组的首地址赋予数组型指针变量 例10 几种等效编码形式 int a[5], *pa; pa=a; 或 int a[5], *pa; pa=a[0]; 或 int a[5], *pa=a; 或 int a[5], *pa=a[0]; pa=a[2]; 4. 把字符串的首地址赋予字符型指针变量 例 char *pc; pc= Welcome to Turbo C world!; 或 char *pc= Welcome to Turbo C world!; 注意:把字符数组首地址(即字符’W’的内存地址)赋予指针变量pc。 5. 把函数的入口地址赋予函数指针变量 例 int (*pf)(); pf=f; // 设f为已说明的某整型函数名 或 int (*pf) ()=f; 注意:pf是所说明的函数指针变量名,它指向整 型函数f。 1. 指针变量与整数
显示全部
相似文档