用指针来代替return返回参数

C语言指针使用笔记

学习了一段时间指针的使用,发现照着教材抄不知道自己的掌握程度,遂拿着源代码改了一下。以下代码完成了对10个数的求和,求和函数通过获取变量marbles(数组名)和SIZE(数组长度)来求和;我把该程序的子函数sump改成void类型,使用指针来传递结果。
《C Primer Plus》一段原始代码如下:

#include <stdio.h>
#define SIZE 10
int sump(int * start, int * end);
int main (void)
{
	int marbles[SIZE] = {20, 10, 5, 39, 4, 16, 19, 26, 31, 20};
	long answer;

	answer = sump(marbles, marbles + SIZE);
	printf("The total number of marbles is %1d.\n", answer);
	return 0;
}

int sump (int * start, int * end)
{
	int total;
	while (start < end)
	{
		total += *start;
		start ++;
	}
	return total;
}

修改后的代码如下:

#include <stdio.h>
#define SIZE 10
void sump(int *start, int *end, int *ptotal);
int main ()
{
	int marbles[SIZE] = {20, 10, 5, 39, 4, 16, 19, 26, 31, 20};
	long answer;
	int psum;
	psum = 0;
	sump(marbles, marbles + SIZE, &psum);
	printf("The total number of marbles is %d.\n", psum);
	return 0;
}

void sump (int * start, int * end, int * ptotal)
{
	
	while (start < end)
	{
		*ptotal += *start;
		start++;
	}
	
}

结果都显示为:

The total number of marbles is 190.

说明修改成功。虽然我这样修改没什么意义,但该程序充分证明了指针在主从函数间传递参数的方便之处。
新手操作,见谅。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值