小白学编程之函数

小白学编程之函数

函数在很多小白眼里感觉没多大作用,但是函数作为一个执行体,理论上来说,不用函数也可以。但是如果在程序中需要多次用到这个代码块,就需要些很多冗余的代码。另外,函数的使用可以使得你的程序看起来逻辑比较好。下面我们就来看看函数。

函数定义

函数类型 函数名 (形式参数表)
{
函数实现的过程
}

例求圆柱体体积

double cyliner(double r, double h){
    double ret;
    ret = 3.14 * r * r * h;
    return ret;
}

在上述的函数中return的作用有两个,第一是结束函数的运行,第二是带着运算结果(表达式的值)返回到主函数
注意:return只能返回一个值。

函数的调用

任何c语言执行,首先从主函数main()开始,如果遇到某个函数调用的话,主函数就会暂停执行,转而执行相应的函数,该函数执行过后再返回主函数,然后从原先暂停的主函数位置继续执行。

函数声明

函数要先定义后调用,如果自定义函数放在主函数的后面,那么需要在函数调用之前,加上函数声明。

函数声明定义

函数类型 函数名 (参数表)

例上述求圆柱体体积

double cylinder (double r, double h);

注意:其中的变量名(r,h)可以省略

函数声明一般放在头文件和主函数之间。
函数定义和函数声明的区别:声明是一条c语言;而定义时的函数首部不是语句所以不能加分号。

函数的优点

1、程序的结构清晰,逻辑关系明确,程序的可读性强。
2、解决相似问题时不用重复编写代码,可通过调用函数解决,减少代码量。
3、利用函数实现模块化编程,各模块功能相对独立,利用“各个击破”,可以降低调试的难度。

参数传递

数值传参

按数值传递参数,改变形参的大小,不会影响实参的本身。

地址传参

按地址传递参数,把实参变量的地址传送给被他调用的函数。实参和形参共用一个地址,形参改变的话,实参也会改变。

传递数组的条件

1、数组首元素的地址
2、数组元素的个数

void function(int a[], int x)

分析上述的例子
int a[ ]-------->代表的是形参接收一个整型数组的首元素地址
int n ---------->代表的是形参接收元素的个数

函数指针:

本质就是一个指针变量,保存的是函数的入口地址

函数指针的用法:

返回值类型(*p)(参数表)

int (*pfun)(int , double);

例子分析:

pfun是一个函数指针,保存有两个参数,分别是整型和浮点型,返回值是一个整型函数的入口地址(函数名就是函数的入口地址)。

函数的调用方式

1、函数名调用
2、通过函数指针回调函数

函数指针回调函数

例:

fun();    //函数名
void (*pfun)()    //函数指针
pfun = fun;    //选择不同的函数名,函数指针执行不同的函数
pfun();
指针函数

本质是一个函数,返回值是指针类型的函数

注意:如果返回值是指针类型,要返回一个有效的地址,返回局部的地址是没有意义的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值