指针访问多维数组

指针访问多维数组

ID:38792472

大小:46.71 KB

页数:4页

时间:2019-06-19

指针访问多维数组_第1页
指针访问多维数组_第2页
指针访问多维数组_第3页
指针访问多维数组_第4页
资源描述:

《指针访问多维数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#includeintmain(){usingnamespacestd;//创建一2×3×4的int型数组sz,并初始化intsz[2][3][4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};//采用数组名式用法声明指针pSZint(*pSZ)[3][4]=sz;for(inti=0;i<2;i++)for(intj=0;j<3;j++)for(intk=0;k<4;k++)cout<<*(*(*(pSZ+i)

2、+j)+k)<<"";cout<

3、的数据也就是sz里存放的数据了,[3][4]就是告诉编译器,这个指针是指向维数为3*4的二维数组的,这样的话,pSZ+i相当于sz+i,一下子向后面指i*3*4个字节偏移处...9.3.4多维数组的指针二维数组:staticinta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};理解为:有三个元素a[0]、a[1]、a[2],每一个元素代表一行,每一个元素是一个包含4个元素的数组。数组名a代表:整个二维数组的首地址,也是元素a[0][0]的地址,同时代表第一行元素的首地址。a+1表示第二行元素的首地址,也

4、是元素a[1][0]的地址。a+2表示第三行元素的首地址,也是元素a[2][0]的地址。设数组的首地址是2000,则有a等于2000。第一行4个元素,占8字节,因此第二行的首地址是2008,即a+1等于2008。第二行4个元素,占8字节,因此第三行的首地址是2016,即a+2等于2016。由于把a[0]、a[1]、a[2]看成一维数组,它们代表各自数组的首地址,即:a[0]~&a[0][0](~表示“相当于”)a[1]~&a[1][0]a[2]~&a[2][0]根据一维数组的表示方法,有:a[0]+1:表示一维数组中第二个元素,~&a[0][1]a

5、[0]+2:~&a[0][2]a[1]+1:~&a[1][1];综上所述,二维数组a的地址用下图说明(教材p180,图9.25):已知某元素的指针后,可以用*运算符访问该元素。例:*(a[1]+2)=a[1][2]=13关于二维数组各种指针表示法,仅要求到此,教材p180第三行~p187[本节尾],除[例9.12]外,不要求。(讲述二维数组元素的另一种表述)。 [例9.12]用指针变量输出数组元素的值。main(){staticinta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int*p;   for(p=a

6、[0];p

7、;i<3;i++) { for(j=0;j<4;j++)printf("%4d",a[i][j]); printf(""); }} 这种方式虽然清晰,但需进行两层循环,且为了计算每一个元素a[i][j]的位置,均进行i*4+j的运算,执行效率非常低。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。