2、指针变量的赋值 2)赋值语句给指针变量赋值 2000① ←整型变量a 例:① int a=20; 20 ②int*p,*q; ③ p=&a;∥给指针变量p赋值 3000 ←指针变量p →2000 ④ q=p;∥给指针变量q赋值 5000 2000 ←指针变量q 11
2)赋值语句给指针变量赋值 例: ① int a = 20 ; ② int *p, *q; ③ p = &a; // 给指针变量p赋值 ④ q = p; // 给指针变量q赋值 整型变量a 指针变量p 指针变量q . . 2000. . 20 2000 2000 11 2、指针变量的赋值 3000 5000 .
注意:从表面上看地址是一个整数,但地址与普通整数-是 有本质区别的。 ①地址不但有值的意义-表示不同的存储位置,同时还有类型的 属性确定从该地址开始的多少字节是一个完整的数据存储单元- 普通整数无法具备的属性。 ②内存单元的分配是由系统控制的,具体分配给变量哪个内存单 元由操作系统确定,如果程序随意进行地址赋值将会给内存管理 带来混乱,甚至是灾难性的后果。 结论:不允许把一个普通整数直接赋给指针变量。 例如:int*p,a P=100;∥逻辑错-不允许把一个普通整数赋给指针变量 p=&a;∥对一a的地址赋给p
注意:从表面上看地址是一个整数,但地址与普通整数-是 有本质区别的。 ① 地址不但有值的意义-表示不同的存储位置,同时还有类型的 属性-确定从该地址开始的多少字节是一个完整的数据存储单元- -普通 整数无法具备的属性。 ② 内存单元的分配是由系统控制的,具体分配给变量哪个内存单 元由操作系统确定,如果程序随意进行地址赋值将会给内存管理 带来混乱,甚至是灾难性的后果。 结论:不允许把一个普通整数直接赋给指针变量。 例如:int *p , a; p=100;// 逻辑错-不允许把一个普通整数赋给指针变量 p=&a; // 对—a的地址赋给p