C语言函数

老子叫甜甜 提交于 2020-02-02 12:20:28

函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码。

函数的定义

  • 无参数定义
 	dataType  functionName(){
    //body
}
  • 有参数的定义
 dataType  functionName( dataType1 param1, dataType2 param2 ... ){
    //body
}

注意:函数不能嵌套定义。

实参与形参

C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。

形参(形式参数)

在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。

实参(实际参数)

函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。

形参与实参的区别与联系

  1. 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

  2. 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

  3. 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。

  4. 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

函数的调用

函数之间可以互相调用。在函数之外的语句是无效的,编译器会报错。

函数的声明

原则上函数定义要出现在函数调用之前,否则就会报错。
声明(Declaration),就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上。
函数声明,相当于去掉函数定义中的函数体,并在最后加上分号;,如下所示:

dataType  functionName( dataType1 param1, dataType2 param2 ... );

也可以不写形参,只写数据类型:

dataType  functionName( dataType1, dataType2 ... );

函数参考手册

www.cplusplus.com 是一个非常给力的网站,它提供了所有C语言标准函数的原型,并给出了详细的介绍和使用示例,可以作为一部权威的参考手册。

递归

即自己调用自己。递归函数的解决方案存在巨大的内存开销和时间开销,

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!