
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有什么区别呀?求高手赐教~~ 展开
#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有什么区别呀?求高手赐教~~ 展开
4个回答
展开全部
这题的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 返回。
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 返回。
展开全部
Xfun是把数组a中所有>0的元素加起来
for那句是指针循环
指针的++,是把指针地址向后偏移一个数据,如果指针指向int,则向后偏移sizeof(int)
这样:p的初值指向a,然后每次移动一个int的大小,正好指向数组中下一个元素,一直循环到数组结束
return X就是把最后计算的那个总和(计算结果)返回,使得调用的地方可以得到这个数字
for那句是指针循环
指针的++,是把指针地址向后偏移一个数据,如果指针指向int,则向后偏移sizeof(int)
这样:p的初值指向a,然后每次移动一个int的大小,正好指向数组中下一个元素,一直循环到数组结束
return X就是把最后计算的那个总和(计算结果)返回,使得调用的地方可以得到这个数字
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
这样看起来就比较明朗了
int x=0;
for (int *p=a;p<a+n;p++)//从第一个值开始遍历数组,p < a+n表示数组的最后一个指针,p++表 //示取下一个指针
{
if(*p>0) //对应的指针值大于0
{
x+=*p;
}
}
return x;
这样看起来就比较明朗了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询