9.1地址和指针的概念"K'011ACpP"k"-011A地址与指针设有字符变量c,其内容为'K'(ASCII码为十进制数75),C占用了011A号单元(地址用十六进数表示)。设有指针变量p,内容为011A,即指针变量p的内存空间保存的是变量c的地址。这种情况称为P指向变量c,或说P是指向变量c的指针变量我们约定:“指针”是指地址,是常量,“指针变量”是指取值为地址的变量。6
6 9.1 地址和指针的概念 011A p c ‘K’ 011A 地址与指针 设有字符变量c,其内容为’K’(ASCII码为十进制数 75),c 占用了011A号单元(地址用十六进数表示)。 设有指针变量p,内容为011A,即指针变量p的内存空间保存 的是变量c的地址。 这种情况称为P指向变量c,或说P是指向变量c的指针变量。 我们约定:“指针”是指地址,是常量,“指针变量”是指取 值为地址的变量
第9章 指针指针变量
第9章 指针 指针变量
9.2.1 定义一个指针变量对指针变量的定义包括三个内容:p1int(1)指针标识说明,*即定义变量为一个指针变p2量;int(2)指针变量名;p3(3)变量值(指针)所指向的变量的数据类型floatp4其一般形式为:char类型说明符*变量名;例如:int*p1;指针变量也是变量再如:在内存中也要占用一定的内存int *p2;//p2是指向整型变量的指针变量单元但所有类型的指针变量都float*p3//p3是指向浮点型变量的指针变量占用同样大小的内存单元char*p4;//p4是指向字符型变量的指针变量如:VC++6.0中为4个字节
对指针变量的定义包括三个内容: (1)指针标识说明,* 即定义变量为一个指针变 量; (2)指针变量名; (3)变量值(指针)所指向的变量的数据类型。 其一般形式为: 类型说明符 *变量名; 例如: int *p1; 再如: int *p2; //p2是指向整型变量的指针变量 float *p3; //p3是指向浮点型变量的指针变量 char *p4; //p4是指向字符型变量的指针变量 9.2.1 定义一个指针变量 p1 p2 p3 p4 指针变量也是变量 在内存中也要占用一定的内存 单元但所有类型的指针变量都 占用同样大小的内存单元 如:VC++6.0中为4个字节 char int int float
变量地址赋给指针变量的方法:设有指向整型变量的指针变量p,如要把整型变量a的地址赋予p可以有以下两种方式:1.指针变量初始化的方法int a=3;int *p=&a;P2.赋值语句的方法int a=3;int *p;p=&a;不允许把一个数赋予指针变量,故下面的赋值是错误的:int *p;p=1000;/*错误,因为用户不知道内存地址为1000内是什么内容,因此对其操作危险*/9
9 变量地址赋给指针变量的方法: 设有指向整型变量的指针变量p,如要把整型变量a 的地址赋予p可以有以下两种方式: 1.指针变量初始化的方法 int a=3; int *p=&a; 2.赋值语句的方法 int a=3; int *p; p=&a; 不允许把一个数赋予指针变量,故下面的赋值是错误的: int *p; p=1000; /*错误,因为用户不知道内存地址为1000内是什 么内容,因此对其操作危险*/
指针变量:“先定义,赋值、然后使用"注意:1.未经赋值的指针变量不能使用,可能会造成系统混乱,甚至死机。2.指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误两个有关的运算符:&:取地址运算符*:指针运算符(或称“间接访问”运算符)
10 9.2.3 指针变量的引用 指针变量:“先定义,赋值、然后使用” 注意: 1. 未经赋值的指针变量不能使用,可能会造成系统混乱,甚 至死机。 2. 指针变量的赋值只能赋予地址,决不能赋予任何其它数据, 否则将引起错误。 两个有关的运算符: & : 取地址运算符 * : 指针运算符(或称“间接访问” 运算符)