指针和自定义数据类型-Read.PPT
文本预览下载声明
第五章 指针和自定义数据类型 指针运算是地址的运算( T *px) px+n, px-n ——将指针从当前位置向前或向后移动n个数据单位,而不是n个字节。 这取决于指针所指向的数据类型(T)。 px?n的结果为: px?n?sizeof(T) px-py求出的是两指针位置之间的数据个数,而不是地址差。 px-py的结果为:( px-py) / sizeof(T) y= ?px++——y= ? ( px++ ), 注意优先级和结合顺序 y= ? ++ px——y= ?( ++ px) 问题:y= ?px++和y= (?px)++的意义 5.2 指针和数组 5.2.1 指针与数组的关系 可以用指针代替数组下标来访问数组: f ( ) { int a[5]; int *pa; *(pa+3)=10; pa[3]=10; *(a+3)=10; a[3]=10; } 指针与数组的差异:指针是地址变量,可任意改变它的值;而数组名是地址常量,其值不能改变。 ex. 1 includeiostream.h main ( ) { static char str[ ]=“string”; char *ps; ps=str; while ( *ps !=‘\0’) { cout*ps; ps++; } coutendl; } 5.2.3 指针数组 指向同一类型对象的指针组成的数组。每个数组元素都是一指针变量。 存储类型 数据类型 * 指针数组名[元素个数] ex. 2 void main ( ) { int a[2][3], *pa[2]; pa[0]=a[0];
显示全部