标题:[求助]指针问题
只看楼主
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
 问题点数:0 回复次数:5 
[求助]指针问题

int s[]={1,2,3,4,5,6};
int *P=s;
cout<<*(p+(*p+1));
请问为什么输出结果是3呀?

搜索更多相关主题的帖子: 指针 
2007-10-05 18:12
chen7806
Rank: 1
等 级:新手上路
威 望:2
帖 子:160
专家分:0
注 册:2007-8-5
得分:0 
*P+1=2.因为*P为初始值1;

*(P+2)等于数组下标为2[0+2]的值。所以为3。
2007-10-05 18:31
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
得分:0 
恩,明白,多谢咯~~

勤奋造就未来
2007-10-05 18:37
夜子
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-10-2
得分:0 
#include<iostream>
using namespace std;
void main()
{
int s[]={1,2,3,4,5,6};
int *p=s;
cout<<*(p+(*p+1));
}
这个是对应的C++代码。这里这样分析:
首先p是一个int *指针,*p值是s[0],即1;然后*p+1值为2;那么*(p+(*p+1))就是*(p+2)就是p[2];所以是3啊

2007-10-05 18:49
jonc
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-3-25
得分:0 
int s[]={1,2,3,4,5,6};
int *P=s;
cout<<*(p+(*p+1));
其中*p是指取s[]的第一个值1
所以*p+1=2
而p是s[]的首地址
所以p+2就是取s[2]的值3

菜鸟也想高飞
2007-11-02 17:12
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
得分:0 
这种题目好无聊~~~~

个人意见,不代表官方看法
2007-11-02 17:14



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




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

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