注意: ■严格地说,一个指针是一个地址,是一个常量。 而一个指针变量却可以被赋予不同的指针值,是变量。 但常把指针变量简称为指针。 ■为了避免混淆,我们约定:“指针”是指地址,是常量 “指针变量”是指取值为地址的变量。 ■定义指针变量的目的是为了通过指针去访问内存单元
6 严格地说,一个指针是一个地址,是一个常量。 而一个指针变量却可以被赋予不同的指针值,是变量。 但常把指针变量简称为指针。 为了避免混淆,我们约定:“指针”是指地址,是常量, “指针变量”是指取值为地址的变量。 定义指针变量的目的是为了通过指针去访问内存单元。 注意:
变量的指针和指向变量的指针变量 ■变量的指针变量的地址 例:&a为变量a在内存单的存放地址,也称变量a的指针 指针变量—存放地址的变量 ■指向变量的指针变量一个指针变量存放变量a的地址, 则称该指针变量为指向变量a的指针变量。 例:inta=10; pa int"pa; pa=&a; &a 10
7 变量的指针和指向变量的指针变量 变量的指针——变量的地址 例:&a 为变量a在内存单的存放地址,也称变量a的指针 指针变量——存放地址的变量 指向变量的指针变量—— 一个指针变量存放变量a的地址, 则称该指针变量为指向变量a的指针变量。 例: int a=10; int *pa; pa=&a; 10 a &a pa
指针变量的定义 ■指针变量的定义其一般形式为: 类型说明符变量名; ■表示这是一个指针变量,变量名即为定义的指针变量名; 类型说明符表示本指针变量所指向的变量的数据类型(基类 型)。 ■例如:int少p1; ■表示p1是一个指针变量,它的值是某个整型变量的地址。 或者说p1指向一个整型变量。 至于p1究竞指向哪一个整型变量,应由向p1赋予的地址来 决定
8 指针变量的定义其一般形式为: 类型说明符 *变量名; *表示这是一个指针变量,变量名即为定义的指针变量名; 类型说明符表示本指针变量所指向的变量的数据类型(基类 型)。 例如: int *p1; 表示p1是一个指针变量,它的值是某个整型变量的地址。 或者说p1指向一个整型变量。 至于p1究竟指向哪一个整型变量,应由向p1赋予的地址来 决定。 指针变量的定义
再如: static int *p2;/p2是指向静态整型变量的指针变量* float *p3 /p3是指向浮点变量的指针变量* char *p4 /p4是指向字符变量的指针变量* 注意 个指针变量只能指向同类型的变量,如p3只能指向浮 点变量,不能时而指向一个浮点变量,时而又指向一个字 符变量。 ■这是由于指针的移动和运算都与基类型有关
9 static int *p2; /*p2是指向静态整型变量的指针变量*/ float *p3; /*p3是指向浮点变量的指针变量*/ char *p4; /*p4是指向字符变量的指针变量*/ 再如: 注意: 一个指针变量只能指向同类型的变量,如p3 只能指向浮 点变量,不能时而指向一个浮点变量,时而又指向一个字 符变量。 这是由于指针的移动和运算都与基类型有关
指针变量的赋值 ■指针变量同普通变量一样,使用之前不仅要定义说明,而 且必须赋予具体的值。未经赋值的指针变量不能使用,否则 将造成系统混乱,甚至死机。 ■指针变量的赋值只能赋予地址,不能赋予任何其它数据, 否则将引起错误。 ■C语言中提供了地址运算符&来表示变量的地址。 其一般形式为:&变量名; 例如:&a变示变量a的地址,&b表示变量b的地址。 ■变量a本身必须预先说明
10 指针变量同普通变量一样,使用之前不仅要定义说明,而 且必须赋予具体的值。未经赋值的指针变量不能使用,否则 将造成系统混乱,甚至死机。 指针变量的赋值只能赋予地址,不能赋予任何其它数据, 否则将引起错误。 C语言中提供了地址运算符&来表示变量的地址。 其一般形式为: & 变量名; 例如:&a变示变量a的地址,&b表示变量b的地址。 变量a本身必须预先说明。 指针变量的赋值