您的位置:首页 > 编程语言 > C语言/C++

C++学习计划之指针和多维数组的操作

2014-11-12 22:18 393 查看
多维数组,即是数组的数组,

一维数组 int a[5]; int *p;p=a;

a其实是常值指针,就是列为5的一个元素为int的数组地址,

a[3]<=>*(p+3)<=>p[3

二维数组 int a[4][5];这时a是一个指向a[0]数组的地址,a[0]也是一个地址,是第一行数组的地址,

所以将a用指针来指向需要相同的数据类型,及要定义 int (*p)[4] 这是一个指针指向元素为int的4列数组。

可以int (*p)[4] = a;这是p就是指向一个一维数组的指针,那么(*p)是什么意思呢 。与a[0]的意思是一样的,代表的就是一维数组的地址,

所以若想对每个元素操作,就学学上面一维数组吧

int * q;q=*(p+2);

*(q+2)就是a[2][2];

测试:

typedef int arry[4];
int main()
{
int b[4]={1,2,3,4};
int* f=b;

int a[3][4]={0};
arry *p;
//int (*p)[4]=a;
int *q;
q=*p;

for(int i =0;i<4;i++)
{
*(q+i)=i;
}
for(int i =0;i<4;i++)
{
cout<<*(q+i)<<" ";
//cout<<*((*k)+i)<<" ";
}
cout<<endl;
for(int i =0;i<4;i++)
{
cout<<f[i]<<" ";
}
cout<<endl;
return 0;

}

run



----------------------------------------------------------------------------------------

有机会再补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: