| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 445 人关注过本帖
标题:[求助]指针问题
只看楼主 加入收藏
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
快速回复:[求助]指针问题
数据加载中...
 
   



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

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