C++关于数组指针的题

下列程序运行时的输出结果是?#include<iostream>usingnamespacestd;intXfun(int*a,intn);intmain(){intb[... 下列程序运行时的输出结果是?
#include <iostream>
using namespace std;
int Xfun(int *a,int n);
int main()
{
int b[6]={-2,6,8,-3,5,4};
cout<<Xfun(b,6)<<endl;
return 0;
}
int Xfun(int *a,int n)
{
int x=0;
for (int *p=a;p<a+n;p++)if(*p>0) x+=*p;
return x;
}
最后答案是23
在下刚学这部分内容,可能有很多知识点还没学到,所以做题不是很明白~~
这题的Xfun是什么意思,还有for语句那一行应该怎么解释呢?另外最后的return一直在用,但也没太明白,return 0 和return x有什么区别呀?求高手赐教~~
展开
 我来答
yehuaw
2012-07-23 · TA获得超过355个赞
知道小有建树答主
回答量:615
采纳率:0%
帮助的人:210万
展开全部
这题的Xfun是什么意思:
Xfun是一个函数,自己声明的 int Xfun(int *a,int n);int是指返回类型;Xfun是函数名;
(int *a,int n)是函数的参数;

for (int *p=a;p<a+n;p++)if(*p>0) x+=*p;== for(int *p=a;p<a+n;p++){if(*p>0) x+=*p;}

int *p=a:是声明了一个int* 类型的指针,值为a;
p<a+n:界定了p的边界,比如一个n个元素的数组,则p最大为a+n-1,即a[n-1],数组的最后一个元素。
p++:这个你总会明白的吧。
if(*p>0) x+=*p:如果*p的值大于0,将p指向的值累加到x中。(*p是取出p所表示的地址中的值)
这个for循环就是把数组中大于0 的数累加,存到x中。

return 就是函数返回值 return 0返回的是0,return x 返回的是x的值。记住是函数的返回值,就是函数执行到return 时会结束,并且返回一个值,函数声明的时候不是有类型的吗。
cout<<Xfun(b,6)<<endl;这里调用了函数Xfun,并且输出了函数运行的结果,这个结果存在x中,在for循环结束后利用return 返回。
百度网友6eab688
2012-07-23 · TA获得超过4692个赞
知道大有可为答主
回答量:962
采纳率:50%
帮助的人:976万
展开全部
Xfun是把数组a中所有>0的元素加起来
for那句是指针循环
指针的++,是把指针地址向后偏移一个数据,如果指针指向int,则向后偏移sizeof(int)
这样:p的初值指向a,然后每次移动一个int的大小,正好指向数组中下一个元素,一直循环到数组结束

return X就是把最后计算的那个总和(计算结果)返回,使得调用的地方可以得到这个数字
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ldlzhy1984
2012-07-23
知道答主
回答量:26
采纳率:0%
帮助的人:14.5万
展开全部
Xfun是一个函数,这个函数是遍历数组中的元素,把值大于0的元素相加,并把最后的结果返回

int x=0;
for (int *p=a;p<a+n;p++)//从第一个值开始遍历数组,p < a+n表示数组的最后一个指针,p++表 //示取下一个指针
{
if(*p>0) //对应的指针值大于0
{
x+=*p;
}
}
return x;
这样看起来就比较明朗了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
情迷520鸡窝
2012-07-23
知道答主
回答量:13
采纳率:0%
帮助的人:2.1万
展开全部
我也在学……还不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式