当前位置: 首页 > wzjs >正文

浙江省建设监理管理协会网站外贸英才网

浙江省建设监理管理协会网站,外贸英才网,钢筋网片验收规范及标准,建信建设投资有限公司网站山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省2.指向多维数组元素的指针变量( 1 )指向数组元素的指针变量例题:有一个34的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。解题思路:二维数组中…

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

2.指向多维数组元素的指针变量

( 1 )指向数组元素的指针变量

例题:

有一个3×4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。

解题思路:

二维数组中的所有元素都是整型的,它相当于整型变量,可以用int型指针变量指向它。二维数组中的各元素在内存中是按行顺序存放的,即存放完序号为0的行中的全部元素后,接着存放序号为1的行中的全部元素,依此类推。因此可以用一个指向整型元素的指针变量,依次指向各个元素。

编写程序:

运行结果:

程序分析: 

p是一个int*型(指向整型数据)的指针变量,它可以指向一般的整型变量,也可以指向整型的数组元素。每次使p值加1,使p指向下一元素。第6行if语句的作用是使输出4个数据后换行。例题是顺序输出数组中各元素之值,比较简单。如果要输出某个指定的数值元素(例如a [ 1 ] [ 2 ]),则应事先计算该元素在数组中的相对位置(即相对于数组起始位置的相对位移量)。计算a [ i ] [ j ]在数组中的相对位置的计算公式为

i *m + j

其中,m为二维数组的列数(二维数组大小为n×m)。例如,对上述3×4的二维数组,它的2行3列元素a [ 2 ] [ 3 ]对a [ 0 ] [ 0 ]的相对位移量为2×4 + 3 = 11元素。如果一个元素占4个字节,则a [ 2 ] [ 3 ]对a [ 0 ] [ 0 ]的地址差为11×4 = 44字节。若开始时指针变量p指向a [ 0 ] [ 0 ],a [ ] [ ]的地址为“&a [ 0 ] [ 0 ] + ( i * m + j )”或“p + ( i * m + j )”。a [ 2 ] [ 3 ]的地址是( p + 2 * 4 + 3 ),即( p + 11 )。a [ 2 ] [ 3 ]的值为* ( p + 11 )。

下面来说明上述“& a [ 0 ] [ 0 ] + ( i * m + j )”中的i * m + j的含义。

a [i][j]元素之前有i行元素(每行有m个元素),在a[i][j]所在行,a[i][j]的前面还有j个元素,因a [ i ][j]之前共有i*m + j个元素。

C语言规定数组下标从0开始,对计算上述相对位置比较方便,只要知道i和j的值,就可以直接用i*m + j公式计算出a [ i ] [j]相对于数组开头的相对位置。如果规定下标从1开始(如FORTRAN语言),则为计算a [ i ][ j ]的相对位置所用的公式就要改为

( i-1 )×m + ( j-1 )

这就使表达式复杂,而且不直观。

( 2 )指向由m个元素组成的一维数组的指针变量

上例的指针变量p是用“int * p;”定义的,它是指向整型数据的,p +1所指向的元素是P所指向的列元素的下一元素(按在内存中存储的下一个整型元素)。

可以改用另一方法,使p不是指向整型变量,而是指向一个包含m个元素的一维数组。这时,如果p先指向a [ 0 ](即p = & a [ 0 ]),则p +1不是指向a [ 0 ] [ 1 ],而是指向a[ 1 ],p的增值以一维数组的长度为单位。

例题2:

输出二维数组任一行任一列元素的值。

解题思路:

假设仍然用例题1程序中的二维数组,例题1中定义的指针变量是指向变量(或数组元素)的,现在改用指向一维数组的指针变量。

编写程序:

运行结果: 

程序分析: 

程序第4行中“int ( * p ) [ 4 ]”表示定义p为一个指针变量,它指向包含4个整型元素的一维数组。注意,* p两侧的括号不可缺少,如果写成* p [ 4 ],由于方括号门运算级别高,因此p先与[ 4 ]结合,p [ 4 ]是定义数组的形式,然后再与前面的*结合,* p [ 4]就是指针数组。有的人感到“(* p)[ 4 ]”这种形式不好理解。可以对下面二者做比较:

①int a [ 4 ] ;

②int ( * p ) [ 4 ] ;

第②种形式表示( * p )有4个元素,每个元素为整型。也就是p所指的对象是有4个整型元素的数组,即p是指向一维数组的指针。应该记住,此时p只能指向一个包含4个元素的一维数组,不能指向一维数组中的某一元素。p的值是该一维数组的起始地址。虽然这个地址(指纯地址)与该一维数组首元素的地址相同,但它们的基类型是不同的。不要混淆。

请分析以下小程序:

 注意第5行不应写成“p=a;”,因为这样写表示p的值是&a[0],指向首元素a[0]。“p=&a;”表示p指向一维数组(行),(*p)[3]是p所指向的行中序号为3的元素。

由于例2中的指针变量p指向二维数组的0行,因此p + i是二维数组a的i行的起始地址(由于p是指向一维数组的指针变量,因此p加1,就指向下一行)。请分析* ( p + 2 ) + 3是什么?由于p = a,因此* ( p + 2 )就是a [2],* ( p + 2 ) + 3就是a [ 2 ] + 3,而a [ 2 ]的值是a数组中2行0列元素a [ 2 ] [ 0 ]的地址(即& a [ 2 ] [ 0 ]),因此* ( p + 2 ) + 3就是a数组2行3列元素的地址,这是指向列元素的指针,由此不难理解:* ( * ( p + 2 ) + 3 )是a [ 2 ] [ 3 ]的值。

* ( p + 2 )是a数组2行0列元素的地址,而p + 2是a数组2行起始地址,二者的值相同,* ( p + 2 ) + 3能否写成( p + 2 ) + 3呢?显然不行。不能作简单的数值替换。( p + 2 ) + 3就成了( p + 5 )了,是a数组5行的起始地址了。


文章转载自:

http://7eqLliNl.nxbsq.cn
http://Y6QjTFYY.nxbsq.cn
http://Ii6dvrWq.nxbsq.cn
http://aQ2zs6e2.nxbsq.cn
http://gJotfkHM.nxbsq.cn
http://byx1W8UW.nxbsq.cn
http://71R7e2xm.nxbsq.cn
http://MOIWYuHf.nxbsq.cn
http://luIH0jbZ.nxbsq.cn
http://6umTUKP8.nxbsq.cn
http://KflsbKNt.nxbsq.cn
http://fnM4kMJl.nxbsq.cn
http://Ny2hIstm.nxbsq.cn
http://kMBJZMlu.nxbsq.cn
http://ezyYN7ez.nxbsq.cn
http://4lBukSLm.nxbsq.cn
http://tyUDLT8v.nxbsq.cn
http://7PezBCLT.nxbsq.cn
http://2AMKrRh4.nxbsq.cn
http://n4733DOm.nxbsq.cn
http://4zoWEZxa.nxbsq.cn
http://ap5A2m3H.nxbsq.cn
http://a6bM7Mrh.nxbsq.cn
http://eVbwfNvr.nxbsq.cn
http://hzXMSQzx.nxbsq.cn
http://EEcj2Sr6.nxbsq.cn
http://2p3MlDYW.nxbsq.cn
http://iRC6WHVR.nxbsq.cn
http://oBS3dkNP.nxbsq.cn
http://2ySeuXh7.nxbsq.cn
http://www.dtcms.com/wzjs/763711.html

相关文章:

  • 服装时尚网站做三国的网站
  • 网站建设 维护购销合同承德网站建设作用
  • 网站固定通栏代码汉网网站建设
  • 宁夏网站建设一条龙可以做四级的网站
  • 网站设计教科书wordpress电脑微信登陆不了
  • 那些网站可做国外零售厦门市住房和城乡建设局网站
  • 网站备案 厦门郑州+高端网站建设
  • asp网站咋做重庆建设工程信息网怎么录入备案
  • 定制网站建设宝安西乡wordpress国内备份神器
  • seo流量排名门户seo在网站制作
  • 网站有哪些风格深圳网站制作要多少钱
  • 为什么要建立企业网站个人手机网站开发
  • 网站推广优化淄博公司青岛房产网链家
  • 商标查询官方网站商业网站建设视频教程
  • 摄影网站功能设计软件开发公司网站
  • 怎么做卖花的网站网站内怎么做搜索
  • 西安网站设计哪家好网站右侧二维码
  • 早晨网站建设邵阳网站建设公司
  • 做抛物线的网站玛丽与魔女之花网页设计教程
  • 湘潭建设网站WordPress微信SVG图标
  • 阿里云服务器做盗版视频网站吗网站怎么发邮件
  • 中小型企业 公司网站建设万网的怎么做网站地图
  • 做搜狗网站优化点软件开发发布平台
  • 公司免费网站it运维外包费用标准
  • 手机p2p网站开发seo案例分析
  • 怎么制作网站软件失信人被执行人查询
  • 每天网站外链做几条最好wamp在网站建设中的功能及协作关系
  • 如何用本地视频做网站卡一卡二卡四老狼
  • 好孩子官方网站王建设重庆南川网站制作公司电话
  • 1+官网商城模板网站建设乐云seo效果好