搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ [求助]指针问题
标题:
[求助]指针问题
只看楼主
xbw0114
等 级:
新手上路
帖 子: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
等 级:
新手上路
威 望:
2
帖 子:160
专家分:0
注 册:2007-8-5
第
2
楼
得分:0
*P+1=2.因为*P为初始值1;
*(P+2)等于数组下标为2[0+2]的值。所以为3。
2007-10-05 18:31
xbw0114
等 级:
新手上路
帖 子:141
专家分:0
注 册:2007-8-8
第
3
楼
得分:0
恩,明白,多谢咯~~
勤奋造就未来
2007-10-05 18:37
夜子
等 级:
新手上路
帖 子:46
专家分:0
注 册:2007-10-2
第
4
楼
得分: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
等 级:
新手上路
帖 子:69
专家分:0
注 册:2007-3-25
第
5
楼
得分: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
等 级:
新手上路
帖 子:107
专家分:0
注 册:2007-9-24
第
6
楼
得分:0
这种题目好无聊~~~~
个人意见,不代表官方看法
2007-11-02 17:14
6
1/1页
1
参与讨论请移步原网站贴子:
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