标题:数组地址问题
取消只看楼主
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
结帖率:71.43%
已结贴  问题点数:20 回复次数:3 
数组地址问题
程序代码:
# include <stdio.h>

int main(void)
{
int a[5] = {2222,2666,35888,4,5};
int *p=a;                           //指针被赋值a的首地址即a【0】为什么输出却提前4个字节

printf("%d\n", &a[0]);
printf("%d\n", &a[1]);
printf("%d\n", &a[2]);
printf("%d\n", a);
printf("%d\n", &p+1);
printf("%d\n", &p);                //指针被赋值a的首地址即a【0】为什么输出却提前4个字节
printf("%d\n", *p);                //值却是正确的。

return 0;
}

搜索更多相关主题的帖子: color 
2017-02-13 17:52
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:0 
回复 2楼 renkejun1942
renkejun1942 不加1输出的p指向的地址也不对,而且是减少了4个字节


我是硬件工程师
2017-02-13 18:30
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:0 
我懂了,&p的概念被我弄混了。通过这个例子我看到指针p的位置在数组前面4个字节。不知道是不是每次都这样。

我是硬件工程师
2017-02-13 18:40
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:0 
我用别的pelles编译后看到p也在数组的前面4个字节,哈哈,大家都试试,来交流一下有没有不是这样的。

[此贴子已经被作者于2017-2-13 18:49编辑过]


我是硬件工程师
2017-02-13 18:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474180-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.834247 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved