《程序设计》cs.u20119 指针的初始化 冷指针在使用前必须初始化。 冷和别的变量一样,定义指针不初始化是一个 比较普通的错误。 冷没有初始化的指针可能指向任意地址,对这 些指针作操作可能会导致程序错误。 冷NULL是一个特殊指针值,称为空指针。它的 值为0。它可被用来初始化一个指针,表示不 指向任何地址。 思考:int*p;*p=5;有什么问题? 程序设计-11
《程序设计》 cs.sjtu 2011.9 程序设计 - 11 指针的初始化 ❖ 指针在使用前必须初始化。 ❖ 和别的变量一样,定义指针不初始化是一个 比较普通的错误。 ❖ 没有初始化的指针可能指向任意地址,对这 些指针作操作可能会导致程序错误。 ❖ NULL是一个特殊指针值,称为空指针。它的 值为0。它可被用来初始化一个指针,表示不 指向任何地址。 ❖ 思考:int *p; *p = 5; 有什么问题?
《程序设计》cs.u20119 第7章间接访问指针 指针的概念 指针运算与数组 动态内存分配 字符串再讨论 冷指针作为函数参数和返回值 冷指针数组与多级指针 指向多维数组的指针 指向函数的指针 程序设计12
《程序设计》 cs.sjtu 2011.9 程序设计 - 12 第7章 间接访问—指针 ❖ 指针的概念 ❖ 指针运算与数组 ❖ 动态内存分配 ❖ 字符串再讨论 ❖ 指针作为函数参数和返回值 ❖ 指针数组与多级指针 ❖ 指向多维数组的指针 ❖ 指向函数的指针
《程序设计》cs.u20119 指针运算和数组 冷指向数组元素的指针 >数组元素是一个独立的变量,因此可以有指针 指向它。如:p=&a[1lp=&a[i >数组元素的地址是通过数组首地址计算的。如 数组的首地址是1000,则第i个元素的地址是 1000+i每个数组元素所占的空间长度 程序设计13
《程序设计》 cs.sjtu 2011.9 程序设计 - 13 指针运算和数组 ❖ 指向数组元素的指针 ➢数组元素是一个独立的变量,因此可以有指针 指向它。如:p = &a[1], p = &a[i] ➢数组元素的地址是通过数组首地址计算的。如 数组的首地址是 1000,则第i 个元素的地址是 1000 + i * 每个数组元素所占的空间长度
《程序设计》cs.u20119 指针与数组 冷在C++中,指针和数组关系密切,几乎可以 互换使用 冷数组名可以看成是常量指针,对一维数组来 说,数组名是数组的起始地址,也就是第0个 元素的地址 如执行了p= array,则p与aray是等价的 对该指针可以进行任何有关数组下标的操作 程序设计14
《程序设计》 cs.sjtu 2011.9 程序设计 - 14 指针与数组 ❖ 在C++中,指针和数组关系密切,几乎可以 互换使用 ❖ 数组名可以看成是常量指针,对一维数组来 说,数组名是数组的起始地址,也就是第0个 元素的地址 ❖ 如执行了p=array,则p与array是等价的, 对该指针可以进行任何有关数组下标的操作
《程序设计》cs.u20119 例如:有定 X int a[10],*p 并且执行了p=a, 那么可用下列语句访问数组a的元素 for(i=0;i<10;++i) cout << pl] 程序设计15
《程序设计》 cs.sjtu 2011.9 程序设计 - 15 例如:有定义 int a[10], *p 并且执行了 p=a, 那么可用下列语句访问数组a的元素 for ( i=0; i<10; ++i ) cout << p[i];