|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 麻烦帮解释下这个式子谢谢
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
297
人关注过本帖
标题:
麻烦帮解释下这个式子谢谢
只看楼主
加入收藏
wzmsld
等 级:
新手上路
帖 子:4
专家分:0
注 册:2012-3-14
结帖率:
0
楼主
收藏
已结贴
√
问题点数:20 回复次数:4
麻烦帮解释下这个式子谢谢
int i,x[3][4];
i=*(*x+1)+1);
如上他题目是要选出不能将x[1][1]赋值给i的选项,这是其中一个,但是我看不懂,麻烦老手帮解释下谢谢了
2012-03-14 22:14
举报帖子
使用道具
赠送鲜花
lonmaor
来 自:郑州
等 级:
版主
威 望:
75
帖 子:2637
专家分:6423
注 册:2007-11-27
第
2
楼
收藏
得分:7
二维数组部分的知识,简单说就是*(*(x+1)+1) 就相当于 x[1][1]
从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-03-14 22:17
举报帖子
使用道具
赠送鲜花
wzmsld
等 级:
新手上路
帖 子:4
专家分:0
注 册:2012-3-14
第
3
楼
收藏
得分:0
回复 2楼 lonmaor
能告诉我为什么吗?
2012-03-14 22:20
举报帖子
使用道具
赠送鲜花
share32
等 级:
黑侠
帖 子:214
专家分:663
注 册:2011-12-1
第
4
楼
收藏
得分:7
多维数组在内存其实是不中存在的。都是多个一维数组在一起而已。
a[4][3]
其实代表 有3个一维数组,每个一维数组4个元素。
这也是为什么二维数组第二个[]里面的数字不能省略的原因,因为如果省略的,机器不知道数组的长度。
第一个[]或者*(a+x),代表是第几个一维数组,第二个[]或者*((*a+x)+y),代表第x个一维数组的第y个元素。
说到这个还好理解点,如果再加上指针数组*p[4]和数组指针(*p)[3],可能就更糊涂了。
需要多做练习,就能理解了。
2012-03-15 00:22
举报帖子
使用道具
赠送鲜花
星辰雁
等 级:
业余侠客
威 望:
1
帖 子:93
专家分:275
注 册:2011-9-10
第
5
楼
收藏
得分:7
*(x+i)+j表示地址,
而*(*(x+i)+j)和*(x[i]+j)则是二维数组元素x[i][j]的值。
从二维数组的角度看,x代表二维数组首元素的地址,即首行(第0行)的首地址;
x+1代表第1行的首地址,x+2代表x[2]的首地址。
详细的请参考多维数组与指针的相关资料,多加深刻去理解。
不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-18 23:54
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
麻烦帮解释下这个式子谢谢
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.019931 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved