正文

C++ 入门 第6章 2. 指向多维数组元素的指针变量2008-10-07 23:57:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/38747.html

分享到:


 

(1) 指向数组元素的指针变量
6.7 输出二维数组各元素的值。
这里采用的方法是用基类型为整型的指针变量先后指向各元素,逐个输出它们的值。
#include <iostream>
using namespace std;
int main( )
{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;                              //p是基类型为整型的指针变量
for(p=a[0];p<a[0]+12;p++)
cout<<*p<< ;
cout<<endl;
return 0;
}
 
运行结果如下:
1 3 5 7 9 11 13 15 17 19 21 23
说明:
p是指向整型数据的指针变量,在for语句中对p赋初a[0],也可以写成p=&a[0][0]
循环结束的条件是p<a[0]+12,只要满足p<a[0]+12,就继续执行循环体。
执行cout<<*p;输出p当前所指的列元素的值,然后执行p++,使p指向下一个列元素。
 
(2) 指向由m个元素组成的一维数组的指针变量
可以定义一个指针变量,它不是指向一个整型元素,而是指向一个包含m个元素的一维数组。这时,如果指针变量p先指向a[0](即p=&a[0]),则p+1不是指向a[0][1],而是指向a[1]p的增值以一维数组的长度为单位,见图6.17
 
6.8 输出二维数组任一行任一列元素的值。
#include <iostream>
using namespace std;
int main( )
{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)[4],i,j;
cin>>i>>j;
p=a;
cout<<*(*(p+i)+j)<<endl;
return 0;
}
运行情况如下:
2 3
23
 
由于执行了p=a,使p指向a[0]。因此p+2是二维数组a中序号为2的行的起始地址(由于p是指向一维数组的指针变量,因此p1,就指向下一个一维数组),见6.18*(p+2)+3a数组23列元素地址。*(*(p+2)+3)a[2][3]的值。

阅读(2769) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册