指针的运算 “”是取内容运算符,用来读取它所指向的内存中的 值 “&”是取址运算符,用来获取某一变量的地址。如: int*pi, a=10; pi&a /pi的值为变量a的地址 eout<<spi;∥p表示取示p指向的内容,即值为10 又如: int *ipl, * ip2, i-100, j; ipl=&i; ip2=&j ip2=*ip1+200;将300赋给ip2所指向的内存单元 ∥这样赋值后的值为300 2021/224
2021/2/24 11 指针的运算 “*” 是取内容运算符,用来读取它所指向的内存中的 值。 “&” 是取址运算符,用来获取某一变量的地址。如: int *pi,a=10; pi=&a; //pi的值为变量a的地址 cout << *pi;//*pi表示取示pi所指向的内容,即值为10 又如: int *ip1, *ip2,i=100,j; ip1=&i;ip2=&j; *ip2=*ip1+200;//将300赋给ip2所指向的内存单元 //这样赋值后j的值为300
指针变量的说明 般格式: 存储类型数据类型*指针变量名1,*指针变量名 如:foat*p3;/p3是指向浮点变量的指针变量 char *p4,*p5;/p4、p5是指向字符变量的指针变量 staic int*p2;/p2是指向静态整型变量的指针变量 注:(1)编译程序为所有类型的指针变量分配大小 相同的4个字节空间,这是因为指针变量的值是一个 地址,其取值范围不变, (2)指针类型变量的类型定义了指针变量所指 向的数据类型,该类型确定了数据占用的存储空间的 大小。 如p2、卩3占4个字节,p4、p5占一个字节。 20212/24 12
2021/2/24 12 指针变量的说明 一般格式: 存储类型 数据类型 *指针变量名1[, *指针变量名 2,…]; 如:float *p3; //p3是指向浮点变量的指针变量 char *p4, *p5; //p4、p5是指向字符变量的指针变量 staic int *p2; //p2是指向静态整型变量的指针变量 注:(1)编译程序为所有类型的指针变量分配大小 相同的4个字节空间,这是因为指针变量的值是一个 地址,其取值范围不变。 (2)指针类型变量的类型定义了指针变量所指 向的数据类型,该类型确定了数据占用的存储空间的 大小。 如p2、p3占4个字节,p4、p5占一个字节
(3)在说明指针变量的同时也可以进行初始化。如: intj,*p=&j;∥说明了整型变量和整型指针变量p 同时置p的初值为j的起始地址。 (4)C++中允许将一个整型常数经强制类型转换后来 初始化指针变量。如: int*pp=(int*)0x5600;/置pp的初值为0x5600, 即使pp指向地址为0x5600的内存单元。 建议初学者不要使用这种方法初始化指针变量。 指针可执行的运算 指针有三种运算:赋值运算、关系运算和算术运算。 2021/224 13
2021/2/24 13 (3)在说明指针变量的同时也可以进行初始化。如: int j, *p=&j;//说明了整型变量j和整型指针变量p, //同时置p的初值为j的起始地址。 (4)C++中允许将一个整型常数经强制类型转换后来 初始 化指针变量。如: int *pp=(int *)0x5600;//置pp的初值为0x5600, //即使pp指向地址为0x5600的内存单元。 建议初学者不要使用这种方法初始化指针变量。 指针可执行的运算 指针有三种运算:赋值运算、关系运算和算术运算
(1)指针的赋值运算 赋的值必须是地址常量或变量,而不能是普通 整数,有以下几种形式: a.变量地址赋予指向相同数据类型的指针 char c,“pc pc=ac ∥将好c的地址赋给pc b指针赋予相同数据类型的另一指针 int*p, *9; int 1; q=&i; p-g5 ∥将q赋给p a: p 两个指针变量指向同一个变量 2021/224
2021/2/24 14 (1)指针的赋值运算 赋的值必须是地址常量或变量,而不能是普通 整数,有以下几种形式: a. 变量地址赋予指向相同数据类型的指针。 char c, *pc; pc=&c; //将c的地址赋给pc b.指针赋予相同数据类型的另一指针。 int *p, *q; int i; q=&i; p=q; //将q赋给p p1: p2: 1 a: 两个指针变量指向同一个变量
例1:指针的赋值运算和算术运算。 81 程序执行后输出: pl=1 p2=1 p3=2 p1=0X0065FDDC p3=0X0065FDD8 fp1=235 fp2=556 指针变量的访问有两种方法 是访问指针变量的值,另一是访问指针变 量所指向的内存单元中的数据,这种访问称为 访问指针的内容。 2021/224 15
2021/2/24 15 程序执行后输出: *p1=1 *p2=1 *p3=2 p1=0x0065FDDC p3=0x0065FDD8 *fp1=23.5 *fp2=55.6 指针变量的访问有两种方法: 一是访问指针变量的值,另一是访问指针变 量所指向的内存单元中的数据,这种访问称为 访问指针的内容。 例1:指针的赋值运算和算术运算。 81