搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 一道简单数组题
标题:
一道简单数组题
只看楼主
printflove
等 级:
新手上路
帖 子:8
专家分:0
注 册:2012-10-21
结帖率:
50%
楼主
已结贴
√
问题点数:20 回复次数:5
一道简单数组题
#include<stdio.h>
void main(void)
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
}
结果为何是2,5啊,5从哪来的?
2014-03-12 10:56
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:20
ptr 指向 a[5]
ptr-1 就是指向 a[4] 啦
2014-03-12 10:59
printflove
等 级:
新手上路
帖 子:8
专家分:0
注 册:2012-10-21
第
3
楼
得分:0
回复 2楼 rjsp
ptr是怎么指向a[5]的啊?
2014-03-12 11:01
printflove
等 级:
新手上路
帖 子:8
专家分:0
注 册:2012-10-21
第
4
楼
得分:0
哦,有些明白了,&a+1是a[5]的地址,谢谢啊
2014-03-12 11:16
panrui0512
等 级:
新手上路
帖 子:20
专家分:3
注 册:2014-1-11
第
5
楼
得分:0
不对吧,&a+1怎么是a[5]的地址呢?
2014-03-12 21:53
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
6
楼
得分:0
以下是引用
panrui0512
在2014-3-12 21:53:58的发言:
不对吧,&a+1怎么是a[5]的地址呢?
应该说 “&a+1的值”和“a+5的值”相同,但类型不同,前者是 int (*)[5],后者是 int *
2014-03-13 11:09
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-428352-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.133556 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved