用指针访问多维数组
来源:互联网 发布:1元洗车软件 编辑:程序博客网 时间:2024/05/16 15:34
从一维数组开始说起:
int a[3]={1,2,3};int *p=a;p指向数组的首地址,*p就是数组的第一个元素。
如果是二维数组:
int a[3][3]={1,2,3,4,5,6,7,8,9};int *p=a;这种写法是错的。二维数组是元素为一维数组的一维数组。显然,a表示的是一个有3个元素(每个元素是由3个元素构成的数组)的数组的首地址,所以要定义指向a的指针,必须进行如下定义:
int a[3][3]={1,2,3,4,5,6,7,8,9};int (*p)[3]=a; //小括号不可省略
这样的话,要求二维数组a中的某个元素:比如:a[2][2]=9;
int a[3][3]={1,2,3,4,5,6,7,8,9},*p1,t;int (*p)[3]=a;p1=*(p+2);//p1指向数组a[3]的首地址t=*(p1+2);//此时t的值等于a[2][2]这样很容易理解,也很容易写出用指针访问二维数组的代码。
只要仔细琢磨,理解清楚了用指针访问二维数组的方法,用指针访问多维数组当然也不在话下。
下面有一段代码,用指针遍历数组,反复琢磨可以帮助理解。
#include <iostream>using namespace std;int main(){int a[3][3]={1,2,3,4,5,6,7,8,9}; for(int (*p)[3]=a;p!=a+3;p++) for(int *t=*p;t!=*p+3;t++) cout<<*t<<endl;return 0;}
0 0
- 用指针访问多维数组
- 指针访问多维数组
- 指针访问多维数组
- 用指针访问多维数组中的元素
- 用指针操作多维数组
- 多维数组和多维指针
- 多维数组 和 多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组与多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组元素的下标引用于指针访问
- 多维数组 用typedef简化指针
- 多维数组和指针
- 指针和多维数组
- 多维数组和指针
- 多维数组与指针
- 高效操作Bash
- 很不错的C#类型讲解,堆,栈,值类型,引用类型,装箱,拆箱
- smartconfig 工作原理
- 初学ACM
- 取(m堆)石子游戏(尼姆博弈)
- 用指针访问多维数组
- HDU 1754 I Hate It 线段树
- 100_桌面小控件的更新和显示
- FragmentPagerAdapter与FragmentStatePagerAdapter差异
- 下一步计划
- 桌面动画-雪花和兔子-源码分享
- uva 10131 - Is Bigger Smarter?
- 租户网络技术
- hdoj 1394 Minimum Inversion Number 【线段数】