《C++大学教程》2007.9 指针的定义及使用 指针变量可以指向不同的变量。如上例中itp指 向x,我们可以通过对intp的重新赋值改变指针的 指向。如果想让intp指向y,只要执行imtp-&y就 可以了。这时,intp与x无任何关系。 同类的指针变量之间可相互赋值,表示二个指针 指向同一内存空间。 父 空指针 >指针没有指向任何空间 >空指针用常量NULL表示,NULL的值一般赋为0 >不能引用空指针指向的值
《C++大学教程》 2007.9 v 指针变量可以指向不同的变量。如上例中intp指 向x,我们可以通过对intp的重新赋值改变指针的 指向。如果想让intp指向y,只要执行intp=&y就 可以了。这时,intp与x无任何关系。 v 同类的指针变量之间可相互赋值,表示二个指针 指向同一内存空间。 v 空指针 Ø 指针没有指向任何空间 Ø 空指针用常量NULL表示,NULL的值一般赋为0 Ø 不能引用空指针指向的值
《C++大学教程》2007.9 指针变量的使用 设有定义 执行语句: 执行语句: 执行语句: int x,y; X=23; p1=&x; *p1=34; int *pl,*p2; y=234; p2=&y; *p2=17; 0o4 1000 23 X 1000 23 1000 34 1004 234 1004 234 1004 17 10 pl 1008 pl 1008 1000 pl 1008 1000 pl 1012 p2 1012 p2 1012 1004 p2 1012 1004 p2
《C++大学教程》 2007.9 设有定义 int x, y; int *p1, *p2; 1000 x 1004 y 1008 p1 1012 p2 执行语句: x=23; y=234; 1000 23 x 1004 234 y 1008 p1 1012 p2 执行语句: p1=&x; p2=&y; 1000 23 x 1004 234 y 1008 1000 p1 1012 1004 p2 执行语句: *p1=34; *p2=17; 1000 34 x 1004 17 y 1008 1000 p1 1012 1004 p2
指针实例 《C++大学教程》2007.9 有以下结构 pl a p2 b 比较执行pl=p2和*p1=*p2后的不同结果。 解: A B pl a pl a B B p2 b p2 b
《C++大学教程》 2007.9 有以下结构 A p1 a B p2 b 比较执行 p1=p2和 *p1= *p2后的不同结果。 解: A p1 a B p2 b B p1 a B p2 b
《C++大学教程》2007.9 指针的初始化 指针在使用前必须初始化。 仅和别的变量一样定义指针,不初始化是一 个比较普通的错误。 没有初始化的指针可能指向任意地址,对这 些指针作操作可能会导致程序错误。 NULL是一个特殊指针值,称为空指针。它的 值为0。它可被用来初始化一个指针,表示不 指向任何地址
《C++大学教程》 2007.9 v 指针在使用前必须初始化。 v 仅和别的变量一样定义指针,不初始化是一 个比较普通的错误。 v 没有初始化的指针可能指向任意地址,对这 些指针作操作可能会导致程序错误。 v NULL是一个特殊指针值,称为空指针。它的 值为0。它可被用来初始化一个指针,表示不 指向任何地址
《C++大学教程》2007.9 第7章间接访问一指针 指针的概念 指针运算与数组 指针作为函数参数和返回值 动态内存分配 水 字符串再讨论 指针数组与多级指针 指向多维数组的指针 指向函数的指针
《C++大学教程》 2007.9 v 指针的概念 v 指针运算与数组 v 指针作为函数参数和返回值 v 动态内存分配 v 字符串再讨论 v 指针数组与多级指针 v 指向多维数组的指针 v 指向函数的指针