第7章指针研讨.ppt

7.5.2 通过指针数组访问二维数组 使用指针数组访问二维数组是非常方便 假设有如下的定义: int a[3][4],*p[3],i,j; for(i=0;i3;i++) p[i]=a[i]; 则指针数组p 的元素p[i]与二维数组a 的第i 行关系如图所示。这样,用指针数组p 访问二维数组a 中任一元素a[i][j]可用如下4 种形式之一: (1)*(p[i]+j) (2)*(*(p+i)+j) (3)(*(p+i))[j] (4)p[i][j]。 7.5.2 通过指针数组访问二维数组 现在分析: *(p+2)+3 和 *(*(p+2)+3) 由于*(p+2)即是p[2],而p[2]等价于a[2],故*(p+2)+3 就是a[2]+3,而a[2]的值是a 数组中2行0 列元素a[2][0]的地址(即a[2][0]),因此*(p+2)+3 就是a 数组中2 行3 列元素a[2][3]的地址,可见*(*(p+2)+3)就是a[2][3]。 【例7.15】 用指针数组访问二维数组元素示例 演示例7. 15 7.5.3 指针数组的应用 引入指针数组的目的是为了处理若干个字符串,也就是说使用指针数组,可以使得字符串的处理变得更为方便灵活。 在例7.14 中,采用了行指针来处理若干个字符串,规定了每行的长度(取决于待处理字符串的最大长度),其实需要

文档评论(0)

1亿VIP精品文档

相关文档