|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个很细的问题,你注意到了吗?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1472
人关注过本帖,
2
人收藏
标题:
一个很细的问题,你注意到了吗?
只看楼主
加入收藏
taqiao
等 级:
新手上路
帖 子:7
专家分:3
注 册:2010-7-2
第
21
楼
收藏
得分:0
路过
学习学习
2011-08-26 17:25
举报帖子
使用道具
赠送鲜花
风尘儒生
等 级:
论坛游民
帖 子:8
专家分:31
注 册:2010-11-25
第
22
楼
收藏
得分:0
其实教学和应用是两回事。。我想没有那个程序员会在程序中写这样的代码。。
但作为一个题目。。它却能让初学者更好的理解指针。。不是么。。所以不要骂这个题了。。
2011-08-26 17:35
举报帖子
使用道具
赠送鲜花
beyondyf
等 级:
贵宾
威 望:
103
帖 子:3282
专家分:12654
注 册:2008-1-21
第
23
楼
收藏
得分:0
你们的理解还是有问题。&a的地址和a是一样的并没有指向a[4]。
重要的是&a + 1这一步。这里需要明白给指针加一个整数(N)后,其指向并不是简单地移动N个字节,而是移动N倍的指针所指向变量类型个字节。
就楼主的问题里,a本身也是一个常指针,&a是指向a数组的指针(一个二级指针),所以对&a加1的实际偏移量是一个a数组的长度。
所以才指向了a[4]后一个的位置。
关于这一点大家可以试一下sizeof(a),以及用%p查看一下a, &a, &a+1所指向的地址。
重剑无锋,大巧不工
2011-08-26 17:54
举报帖子
使用道具
赠送鲜花
黑客32
等 级:
新手上路
帖 子:2
专家分:0
注 册:2011-8-25
第
24
楼
收藏
得分:0
这个问题不错,回答的也挺好
2011-08-26 19:34
举报帖子
使用道具
赠送鲜花
luyi_footman
等 级:
论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
第
25
楼
收藏
得分:0
回复 23楼 beyondyf
我发现他的解释更好,&a是一个二级指针,对的,这样理解起来很轻松。学习了!
天道酬勤!
2011-08-26 19:46
举报帖子
使用道具
赠送鲜花
xiaomarn
等 级:
小飞侠
威 望:
5
帖 子:348
专家分:2026
注 册:2009-3-18
第
26
楼
收藏
得分:0
回复 20楼 lz1091914999
这个才是正解
2011-08-26 19:56
举报帖子
使用道具
赠送鲜花
羲和
等 级:
论坛游民
帖 子:20
专家分:12
注 册:2011-7-7
第
27
楼
收藏
得分:0
学习了
2011-08-26 22:30
举报帖子
使用道具
赠送鲜花
pauljames
等 级:
千里冰封
威 望:
9
帖 子:1555
专家分:10000
注 册:2011-5-8
第
28
楼
收藏
得分:0
我也觉得这是个考指针概念的好题目。a指向int 类型的数据,&a指向5个int类型的数据,因此&a+1指向了下一组5个int类型。然后int *ptr=(int *)(&a+1);转换后,prt指向了单个int类型,因此prt-1指向了a的最后一个int类型数据,取数值后就是5.这里没有对这个地址进行写操作,不会有什么致命的危险。
[
本帖最后由 pauljames 于 2011-8-27 07:12 编辑
]
经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-08-27 07:11
举报帖子
使用道具
赠送鲜花
lintaoyn
等 级:
小飞侠
威 望:
4
帖 子:606
专家分:2499
注 册:2009-4-8
第
29
楼
收藏
得分:0
type* p = 0;
p+1 == (char*)p + sizeof(type);
如果a是一个二级指针,那么对其加1,只会偏移一个指针的大小(一般是四个字节)。
typedef int Array5 [5],a的类型是Array5,但它也可以稳式的转化成int*。情况就是这样。
迭代的是人,递归的是神。
2011-08-27 09:29
举报帖子
使用道具
赠送鲜花
khaz
等 级:
论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
第
30
楼
收藏
得分:0
这是个好题目 如果看了解释还不懂的 就说明指针没学好
另外没觉得是越界 只要不做写操作 就不要提越界的事情
毕竟数组只是并限定了偏移范围的指针而已 指针只要有初始地址和偏移量是不用担心读的问题的
2011-08-27 18:50
举报帖子
使用道具
赠送鲜花
31
3/4页
1
2
3
4
快速回复:
一个很细的问题,你注意到了吗?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.089852 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved