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

来源:互联网 发布:淘宝开店拍照软件 编辑:程序博客网 时间:2024/06/17 23:43

多维数组,即是数组的数组,

一维数组 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



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

有机会再补充

0 0
原创粉丝点击