注意 1:与指针变量(以p1、p2为例)相关的赋值方式有2种:①对指针变量赋值。例1:p2=p1;/对指针变量的赋值---改变指针变量的指向,但不能改变指针变量原来所指变量的值。②对指针变量所指的变量赋值。例2:*p2=*p1;I对指针变量所指的变量赋值--改变指针变量所指的变量的值,但不能改变指针变量的指向。结论:两种赋值的作用是完全不同的。11
注意 1:与指针变量(以p1、p2为例)相关的赋值方式有2种: ① 对指针变量赋值。 例1:p2=p1;//对指针变量的赋值-改变指针变量的指向, 但不能改变指针变量原来所指变量的值。 ② 对指针变量所指的变量赋值。 例2: *p2=*p1; //对指针变量所指的变量赋值-改变指针变量所指的变量 的值,但不能改变指针变量的指向。 结论:两种赋值的作用是完全不同的。 11
注意2:从表面上看地址是一个整数,但地址与普通整数是有本质区别的。1地址不但有值的意义--表示不同的存储位置,同时还有类型的属性-确定从该地址开始的多少字节是一个完整的数据存储单元---普通整数无法具备的属性。②内存单元的分配是由系统控制的,具体分配给变量哪个内存单元由操作系统确定,如果程序随意进行地址赋值将会给内存管理带来混乱,甚至是灾难性的后果。结论:不允许把一个普通整数直接赋给指针变量。例1: int *p,a;P=100;l/逻辑错--不允许把一个普通整数赋给指针变量p=&a;// 对一a的地址赋给p
注意2:从表面上看地址是一个整数,但地址与普通整数-是有本质 区别的。 ① 地址不但有值的意义-表示不同的存储位置,同时还有类型的属性-确 定从该地址开始的多少字节是一个完整的数据存储单元-普通整数无法具 备的属性。 ② 内存单元的分配是由系统控制的,具体分配给变量哪个内存单元由操 作系统确定,如果程序随意进行地址赋值将会给内存管理带来混乱,甚至 是灾难性的后果。 结论:不允许把一个普通整数直接赋给指针变量。 例1:int *p , a; p=100;// 逻辑错-不允许把一个普通整数赋给指针变量 p=&a; // 对—a的地址赋给p