关于封装函数的例题及了解

1.封装一个能计算 m~n 求和的函数,m和n由参数传递

通过返回值返回计算的结果。调用并测试。

#include <stdio.h>

int my_sum(int m, int n);//函数的声明,函数定义好之后,可以在其他函数中调用。
int main(int argc, const char *argv[])
{
	int ret1 = my_sum(1,100);调用my_sum函数,
	int ret2 = my_sum(1,10);//()里面的叫做 实际参数 简称实参,(m=1,n=100)
	int a = 10;
	int b = 20;
	int ret3 = my_sum(a, b);
	printf("ret1 = %d\n", ret1);
	printf("ret2 = %d\n", ret2);
	printf("ret3 = %d\n", ret3);

	return 0;
}

int my_sum(int m, int n){  //()里面的叫做函数的形式参数,简称形参
                           //实参的个数和类型要和形参保持一致
	                       //在调用的过程中相当于用 实参去初始化形参

	int i = 0;
	int sum = 0;
	for(i = m; i <= n; i++){
		sum += i;
	}
	return sum;
}

2.

封装4个函数 分别实现两个整数的 加减乘除的功能,测试并调用。

my_add

my_sub

my_mul

my_div

#include <stdio.h>

//函数的声明
int my_add(int, int);
int my_sub(int, int);
int my_mul(int, int);
double my_div(int, int);

int main(int argc, const char *argv[])
{
	int a = 25;
	int b = 10;
	int ret = my_add(a, b);
	printf("a+b = %d\n", ret);

	printf("a-b = %d\n", my_sub(a, b));
	printf("a*b = %d\n", my_mul(a, b));
	
	double ret2 = my_div(a, b);
	printf("a/b = %lf\n", ret2);

	return 0;
}

//加
int my_add(int x, int y){
	int temp = x+y;
	return temp;
}

//减
int my_sub(int x, int y){
	return x-y;//return后面可以直接写表达式
}

//乘
int my_mul(int x, int y){
	return x*y;
}

//除
double my_div(int x, int y){
	return (double)x/(double)y;//注意除法会出现小数,类型强制转化为double类型

}

3.对值传递和地址传递的区分//形参是指针,也不一定是地址传递,也可能是指针的值传递。

#include <stdio.h>

int m = 10;
int n = 20;

//指针的值传递
void my_chage1(int *x){
	x = &n;
}

//指针的地址传递
void my_chage2(int **x){
	*x = &n;
}

int main(int argc, const char *argv[])
{
#if 0
	//指针的值传递
	int *p = &m;
	my_chage1(p);
	printf("*p = %d\n", *p);//10
#endif
    //指针的地址传递
	int *p = &m;
	my_chage2(&p);
	printf("*p = %d\n", *p);//20
	printf("p = %p,  &n = %p\n", p, &n);//一样的

	return 0;
}

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值