利用指针数组存放单位矩阵

[复制链接]
查看11 | 回复2 | 2008-11-29 16:11:28 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include
using namespace std;
int main()
{ int line1[]={1,0,0};
//声明数组,矩阵的第一行
int line2[]={0,1,0};
//声明数组,矩阵的第二行
int line3[]={0,0,1};
//声明数组,矩阵的第三行
int *p_line[3]; //声明整型指针数组
p_line[0]=line1; //初始化指针数组元素
p_line[1]=line2;
p_line[2]=line3;
//输出单位矩阵
cout<<"Matrix test:"<<endl;
for(int i=0;i<3;i++) //对指针数组元素循环
{

for(int j=0;j<3;j++) //对矩阵每一行循环

{ cout<<p_line[j]<<" "; }

cout<<endl;
}
}
输出结果为:
Matrix test:
1,0,0
0,1,0
0,0,1
我不明白为什么输出结果是这样的~~请问指针数组有什么作用呢?
p_line[0]=line1; //初始化指针数组元素
p_line[1]=line2;
p_line[2]=line3;
//输出单位矩阵
cout<<"Matrix test:"<<endl;
for(int i=0;i<3;i++) //对指针数组元素循环
{

for(int j=0;j<3;j++) //对矩阵每一行循环

{ cout<<p_line[j]<<" "; }

cout<<endl;
}
能给上面的每一行代码作出解释吗?越详细越好,谢谢~~

回复

使用道具 举报

千问 | 2008-11-29 16:11:28 | 显示全部楼层
这么说吧:int a[10];int * pa;pa = a;a就相当于一个int *指针,所以可以用 pa指针代替a来做数组的操作(这个只局限于一维数组)所以pa[0]就是 a[0].一次类推,你的程序也就不难理解了...
回复

使用道具 举报

千问 | 2008-11-29 16:11:28 | 显示全部楼层
指针好处是为函数修改调用参数提供了方便,还有就是动态分配例程需要,还有就是可以提高效率。而指针数组就是数组的每一个元素都是指针。打个比方int a;int *b;b=&a; 取得a的地址,也就是b指向a,如果a=10,而10存放在65343的地址,那么指针b的值就是65343....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行