当前位置: 首页 > news >正文

C语言学习笔记6

一、综述

今天学习了函数这个知识点,主要了解了函数是用来做什么的,什么叫做库函数,什么叫自定义函数,以及函数头,函数名,返回值,参数,函数体。

二、正文

1、函数的定义:

函数的本质是许多的代码打包好以后封存在一个方便使用的词语中,这个词语就叫做函数,不管是什么函数,拆解到最基础的地方,都是一段段代码构成。

每个函数都包含函数名,返回值,参数,函数体。

2、函数用来做什么:

函数主要用于简易的实现复杂的功能,例如通过printf打印,scanf进行输入等。

3、什么叫库函数,什么叫自定义函数:

库函数就是C语言中自带的函数,例如main、return等属于是C语言中自带的函数,不需要额外的操作就可以直接使用,如printf,scanf等属于库函数需要包含对应的头文件,例如printf就是需要包含<stdio.h>这个头文件才可以使用,将头文件添加到代码中的方式为#include<stdio.h>就可以了,,其中#include表示包含,<stdio.h>表示所要包含的头文件名。

自定义函数顾名思义就是程序员自己定义的函数,函数名称由程序员自己决定,但是不能和已经存在的库函数名称冲突。

4、自定义函数如何使用:

自定义函数的使用方法如下

#include<stdio.h> void play(int a) { //打印乘法口诀表 for (int c = 0 ; c < a + 1 ; c++) { for (int b = 1; b < c + 1; b++) { printf("%d\xa1\xc1%d ", c, b); } printf("\n"); } } int main() { int a = 0; while (scanf("%d", &a) != EOF) { //调用函数 play(a); } return 0; }

其中play既是自定义函数,play表示函数的名字,void表示函数不返回值,如果需要返回则改成对应类型,例如返回int类型的值则将void改为int即可,但是需要注意的是如果要返回值,则需要有一个用于接收值的变量。

#include<stdio.h> int play(int a) { //打印乘法口诀表 for (int c = 0 ; c < a + 1 ; c++) { for (int b = 1; b < c + 1; b++) { printf("%d\xa1\xc1%d ", c, b); } printf("\n"); } return 1 ; } int main() { int a = 0; while (scanf("%d", &a) != EOF) { //调用函数 int c =play(a); } return 0; }

上面这段更改后的代码就表示返回一个int 类型的值,这个值为1,如果需要返回其他值,则更改return后面的数字即可,如果只需要返回,而不需要返回值,则可以直接用return;进行返回,int c就是用于接受play(a)的返回值。

5、如何在代码中传递数组:

#include<stido.h> //通过二分法查找下标 int zrx(int arr1[] , int d , int right , int left) { int mid = 0; //采用二分法进行判断 while (left <= right) { mid = ((right - left) / 2) + left; if (arr1[ mid ] < arr1[d - 1]) { left = mid + 1; } else { if (arr1[mid] > arr1[ d - 1]) { right = mid - 1; } else { return mid; } } } //判断出来的是否为找到的值,如果不是返回-1 if (mid <= right) { return -1; } } int main() { //定义数组及变量 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int a = 0 , key = 0; int b = sizeof(arr) / sizeof(arr[0]); //输入想要查找的值 while (scanf("%d", &key)!= EOF) { //调用函数 int c = zrx(arr, key, b, a); //打印下标 printf("%d\n", c); } return 0; }

使用函数传递下标只需要把数组名称放进去即可,但是接收时需要使用数组名[]来进行接受,[]中的数字不会影响数组的大小。

6、形参和实参:

形参就是字面意思,形式上的参数,在未被使用之前,形参不占用内存,只有当实参返回值时形参才会占用内存,形参和实参可以是同样的变量,也可以是不同的变量,但是不建议使用全局变量,因为容易导致代码产生BUG,形参就是int zrx(int arr1[] , int d , int right , int left)中的arr1[],int d,int right,int left,而实参是int c = zrx(arr, key, b, a);中的,arr,key,b,a。

形参表示接受的参数需要什么类型的,以及放在什么位置,实参和形参的位置需要相对应。

7、总结:

自定义函数需要包含函数名,参数,返回值,以及函数体,以上面的代码为例,paly为函数名,1为返回值,a为参数,函数中用{}括起来的则为函数体。另外需要注意的是函数的设计应该遵循一个代码执行一个任务,变量相对应,这样使用起来就会更简单简洁。

http://www.jsqmd.com/news/674490/

相关文章:

  • 2026年比较好的帆布袋厂家对比推荐 - 品牌宣传支持者
  • X-World:小鹏面向规模化端到端自动驾驶的可控自车中心多相机世界模型
  • 如何选择Embedding模型
  • 魔兽争霸III优化终极指南:免费开源插件WarcraftHelper完全配置教程
  • Linux驱动-IMX6ULL开发板qemu环境搭建
  • 别再乱用Mybatis-Plus的@TableField了!5种FieldStrategy实战避坑指南(附Spring Boot配置)
  • 2026年口碑好的帆布袋定制/高质量帆布袋厂家精选合集 - 行业平台推荐
  • jQuery 遍历 - 后代
  • 把 ABAP 变体真正用活,动态保存、加载与删除的一套做法
  • 前端交互性能优化实例
  • 国产异步SRAM单片机外扩专用存储芯片
  • 鹿城靠谱的短视频公司
  • OpenGL学习资料
  • 保姆级教程:用SwitchyOmega+GFWList规则,5分钟搞定Chrome/Firefox代理自动切换
  • WooCommerce 多联盟站点动态追加 Affiliate ID 教程
  • TrueNAS Scale存储池与磁盘健康管理深度指南:SMART测试、休眠策略与温度警报设置
  • C#合并首尾相连多段线实战
  • 基于TMS320F28035的汇川变频器源码:MD290、MD380、MD500三种型号及新的...
  • jQuery 遍历 - 祖先
  • 博通(Broadcom)数据中心交换机芯片的介绍
  • 鸿蒙市场份额飙升但国产厂商仍观望,生态差距与商业考量成阻碍
  • 22.React.js 中所谓的 “Pure Component” 是怎样的一类组件?
  • Spring Cloud Eureka停更后,我们团队是如何平滑迁移到Nacos的(附完整配置对比)
  • 极域电子教室2015版虚拟机环境搭建全流程(附Windows Server 2003镜像)
  • 从AT24C02到BMP280:手把手教你用STM32 HAL库玩转IIC,避开那些新手必踩的坑
  • 从Date到LocalDateTime:一次搞懂Java 8日期API的升级逻辑与实战迁移
  • 保姆级教程:用STM32和飞特STS3215舵机做个机械臂关节(附完整代码与协议解析)
  • 8Mb高速低功耗串行SPI SRAM嵌入式应用
  • YOLOFuse功能体验:多种融合策略,满足不同精度需求
  • 全球半导体展哪家好?2026年优质展会对比甄选顶级平台 - 品牌2026