c语言 指针地址传递 改变,C语言关于整形地址传送给指针的问题今天看了个程序其中的大部分地方 爱问知识人...

今天看了个程序其中的大部分地方都可以理解,但是有些地方有些不懂,所以请经过的大虾指点:

程序如下:

/*

请编写一个函数fun(int *a,int n,int *odd,int *even)

函数的功能是分别救出数组中所有奇数之和,及所以

今天看了个程序其中的大部分地方都可以理解,但是有些地方有些不懂,所以请经过的大虾指点:

程序如下:

/*

请编写一个函数fun(int *a,int n,int *odd,int *even)

函数的功能是分别救出数组中所有奇数之和,及所以

所有偶数之和,形参n给了数组中数据的个数;利用指针

odd返回奇数之和,利用even返回偶数之和

*/

#include

#include

#define N 20

fun(int *a,int n,int *odd,int *even)

{

int i,j=0,o=0;

for(i=0;i

{

if(a[i]%2==0)

o =a[i];

else

j =a[i];

}

*odd=o;

*even=j;

}

void main()

{

int a[N]={1,9,2,3,11,6},i,n=6,odd,even;

clrscr();

printf("The original data is :

");

for(i=0;i

printf("]",*(a i));

printf("

");

fun(a,n,&odd,&even); //这句是怎么回事;

printf("The sum of odd numbers: %d

",odd);

printf("The sum of even numbers: %d

",even);

system("pause");

}

1):其中有这么一句fun(a,n,&odd,&even);后面的&odd,&even有这么传递的吗,书上怎么没有介绍!

2):还有一点最疑惑的是,fun函数明明就没有返回值,为什么在主题目里还说利用 *odd,*even来返回!

3):还有在主函数中明明就没有接收从fun函数中的变量,在主函数中&odd,&even,明明没有进行任何运算,为什么可以输出正确的值出来!

这个问题困扰了我很久,请大侠们指教!!!!

展开

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值