前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何深入掌握C语言函数

如何深入掌握C语言函数

作者头像
用户9645905
发布2022-11-30 08:02:32
1.3K0
发布2022-11-30 08:02:32
举报
文章被收录于专栏:Linux学习~

函数基本概念

每个c程序都至少有一个函数,即主函数 main()  对于简单任务程序而言,全部的代码都写在main()函数中 对于实际开发,程序任务复杂多样 如果全写在main()函数中,就会变得庞大臃肿,结构复杂,造成有很多不必要的重复 由此根据程序的逻辑和任务的分工把代码写到不同的自定义函数中 而业务逻辑和处理流程化分到main() 需要执行具体任务再调用自定义函数

函数类型对比

库函数

C语言或系统提供(自带) 实现某些基本的功能,例如scanf、printf,可在程序中直接调用 需包含相对应头文件

自定义函数

程序员为了完成某项任务而编写的函数 实现某项功能或让主程序更简洁 使用自定义函数之前,必须先声明和定义

库函数

C语言提供了一些已声明和定义的函数 调用这些函数可以完成一些基本的功能 我们把这些函数称为C 标准函数(C standard library),简称库函数 例如printf、scanf、memset、strcpy等

栗子

strcpy(复制)

提个问题:为什么复制成了完全替换,而不是仅替换对应的空间长度的内容?

首先我们得明白在arr2“hello”的结尾后面是结束标志“\0” 他仅是结束标志不作为内容,但复制的同时也将它带上了  效果就是目标空间的“hello”后有个“\0”代表结束 后面的内容不会被读出,也就相当于“完全替换”

 memset(内容指定)

注意:使用库函数必须包含相应的#include头文件 

自定义函数

自定义函数和库函数都具有函数名称,返回值类型,函数参数 库函数无法干所有的事,需要程序员来发挥

调用

如果函数的返回值是void,表示函数以完成某项功能为主,一般用单行书写,独占一条语句 返回值不是void,单行书写则不关心它的返回值,也可以当成常量用于任何表达式中

参数的传递

函数的参数可以理解为函数的局部变量

传值

参数传递就是调用者程序把变量(或常量)的值复制一份给函数的参数 复制后调用者程序的变量和函数的参数就再也没有关系 所以在函数调用的过程中,函数的参数的值发生改变并不会影响调用者程序的变量的值 注:因为没有关系,形式参数与实际参数可重名

传址

任务有改变修改实际参数的必要,进行传址 告诉函数参数的空间地址,可直接对地址指向的对象进行有效改变

栗子

返回最大值函数

这个函数具有返回值:x>y成立的话,那么就返回x,否则就返回y。

接下来我们看看里一个形式的返回最大值

为什么不行呢?

注意函数内的x,y只是形势参数,它的改变不能影响到实际参数。

解决方案

这里我们是通过取地址,带入参数的地址,再解引用来改变参数内容

局别

 其实用好传值和传址调用这个精髓,对函数的使用便会简单许多

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数基本概念
  • 函数类型对比
    • 库函数
      • 自定义函数
      • 库函数
        • 栗子
          • strcpy(复制)
          •  memset(内容指定)
      • 自定义函数
        • 调用
        • 参数的传递
          • 传值
            • 传址
              • 栗子
                • 返回最大值函数
                • 解决方案
                • 局别
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档