首页
论坛
课程
招聘
[基础知识] [分享][分享]C语言基础七-函数
2021-4-19 21:55 2397

[基础知识] [分享][分享]C语言基础七-函数

2021-4-19 21:55
2397

C语言基础七-函数

函数的定义

函数不是数学上的函数,这里的函数指的是解决问题的基本代码。C语言中,把能够实现某一特定功能的所有语句归纳在一起,就形成了一个函数。一般来说,函数只实现单一功能。
返回值类型 函数名(参数列表)
{
函数的实现语句;
函数的返回语句;
}
参数列表:输入参数、输出参数、输入输出参数,无参数用void。
变参函数:函数的参数数量不确定,例如printf()函数。

main函数中参数的使用

1
2
3
4
int main(int argc, char *argv[])
{
return 0;
}

程序通过命令行传递给程序的参数存放在argv[]数组中,argc是参数的个数,包含程序名称本身。

模块化设计思想

函数定义时需要注意:

  • 功能单一,一个函数尽可能只实现一个功能,控制代码行数
  • 分析输入输出,确立函数的原型
  • 严进宽出,对输入参数进行判断
  • 边界考虑,特殊情况的考虑
  • 变量都要初始化
  • 不要让被调用者分配内存,容易造成内存泄露
  • return语句不可返回指向栈内存的指针或者引用,因为该内存单元在函数体结束时被自动释放

函数传参

  1. 传参:形参是对实参值的一个拷贝,形参和实参是不相关的,无法通过改变形参来改变实参
  2. 传指针:形参是对实参地址的一个拷贝,通过地址可以实现对实参的修改
  3. 传引用:形参是对实参的一个引用(别名),形参就是实参本身,改变形参就是改变实参
  • 传参不能改变实参,传指针和传引用能改变实参
  • 传指针和传引用效率比传值高,传指针和传引用是把地址传递给函数,这个过程只涉及到4个字节或者8个字节的地址传输,传值会随着实参类型的不同,传递的字节大小可能会很大
  • 传引用比传指针更安全,引用一旦初始化,就固定了,不会再改变
  • 传引用既有传指针的高效,又有传值的方便

数组做函数参数时的两种情况,要防止溢处:

  1. 传数组的值,把数组的元素一起传递给函数
  2. 传数组的引用,把数组的首地址传递给函数

面对过程和面向对象

面对过程:把问题分解成若干步骤,每个函数实现一个步骤,一步步实现,使用时把数据传递给函数,运算得到结果。
面对对象:抽象出各种对象,把数据和解决问题的方法封装在对象中,然后各个对象之间通过行为完成运算。


第五届安全开发者峰会(SDC 2021)议题征集正式开启!

收藏
点赞2
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回