编程语言C++。

#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,... #include<stdio.h>
#define N 8
void fun(int*x,int i)
{*x=*(x+i)+1;}
main()
{ int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i<N/2;I++)
{printf("%d",a[i]);}
printf("\n");
}

求详细的解析
程序运行输出结果,要详细过程
展开
 我来答
戚文柏Ro
2013-03-03 · TA获得超过336个赞
知道小有建树答主
回答量:400
采纳率:100%
帮助的人:398万
展开全部
#include<stdio.h>
#define N 8
void fun(int*x,int i)
{*x=*(x+i)+1;}
main()
{ int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i<N/2;I++)
{printf("%d",a[i]);}
printf("\n");
}
估计你只是函数跳转看不懂,传参fun(a,2),那么指针x=p(即指针x指向数组p),*x表示数组的第一个元素a[0],*(x+i)表示a[i],即*x=*(x+i)+1;<=>a[0]=a[2]+1;即经过这个语句a[0]已经改变,即a[0]=4,数组a其它元素不变,对于后面的for(i=0;i<N/2;i++)表示输出a[0]~a[3]是个元素,即结果为:
4
2
3
4
建议:你的程序没有加任何输入后暂停的语句,会导致结果一闪而过,你可以在后面加上system("pause");暂停语句,以看清结果。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式