免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 14460 | 回复: 31
打印 上一主题 下一主题

[C] 数组为int a[5]={1,2,3,4,5}则int *ptr=a与*ptr=&a的区别如何分析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-13 17:30 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2011-11-13 17:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
3 [报告]
发表于 2011-11-13 17:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2011-11-13 20:57 |只看该作者
a的值 == &a的值,他们都表示一个地址。
但是请注意区分他们的类型。


&a + 1,向后偏了sizeof (a)那么多bytes
而a + 1,指向后便宜了sizeof(int) bytes

论坛徽章:
0
5 [报告]
发表于 2011-11-13 21:18 |只看该作者
a是数组首元素的首地址,其类型为int[5],&a为数组的首地址,类型为int(*)[5]。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
6 [报告]
发表于 2011-11-13 21:23 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2011-11-13 21:34 |只看该作者
哇,这个我今天也看的~~一个是数组的首元素的地址,另一个才是数组的地址,

int * p;
int a [5]={0 ,1, 2};
int (*pt)[5];

p=a;指向数组第一个元素
pt = &a;指向数组的首地址

p+1 = a + sizeof(int);
pt +1 = a + sizeof(int)*5;


好好理解吧~

论坛徽章:
0
8 [报告]
发表于 2011-11-13 22:42 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2011-11-13 22:46 |只看该作者
回复 8# xuxd32


    博客上写了篇日志,希望对你又帮助,我写是初学~

论坛徽章:
0
10 [报告]
发表于 2011-11-13 22:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP