C语言第六课:从库函数到自定义
一、函数的概念C语言中的函数就是一个完成某项特定的任务的一小段代码在C语言中我们一般会见到两种函数库函数和自定义函数二、库函数1.标准库和头文件c语言标准中规定了C语言的各种语法规则ifwhilefor等等C语言并不提供库函数printfscanf等等。库函数相关头文件https://zh.cppreference.com/w/c/headerC/C官方的链接旧版/有搜索栏https://zh.cppreference.com/w/c/headercplusplus.com新版/无搜索栏https://legacy.cplusplus.com/reference/clibrary/三、自定义函数1.一般形式tip返回类型用来表示函数计算结果的类型有时候返回类型可以是 void 表示什么都不返回。函数名尽量要根据函数的功能起的有意义参数如果有参数要交代清楚参数的类型和名字以及参数的个数函数的参数也可以是 void 明确表示函数没有参数。{ }括起来的部分被称为函数体函数体就是完成计算的过程。ex四、形参和实参1.基础定义实际参数简称实参是真实传递给函数的参数比如上述例子中mian函数中的a,b。形式参数简称实参是定义函数时写在函数括号里的变量名即上述例子中void max函数中的“a”“b”形参仅在函数内部有效函数执行结束自动销毁。形式参数只有在函数被调用的过程中为了存放实参传递过来的值才会向内存申请空间这个过程就是形参的实例化2.形参和实参的关系形参是实参的一份临时拷贝调用函数时实参将自身数据传递赋值给形参二者单向绑定函数内对形参的修改是否影响外部实参取决于数据是否可变函数结束后形参销毁绑定关系解除。五、return 语句return 后面可以是一个数值也可以是一个表达式如果是表达式则先执行表达式再返回表达式的结果。return 后面什么都不写这种写法适合返回类型是void的情况表示这个函数不用返回值。return语句执行后函数就彻底返回不再执行后面的代码。如果return返回值与函数返回类型不一致系统会自动将返回的值隐式转换为函数的返回类型。如果函数中存在if等分支语句则要确保每种情况下都要有返回值。如果不写函数的返回类型编译器默认函数的返回类型为int。函数写了返回类型但是函数中没有使用return返回值那么函数的返回值是未知的。六、数组做函数参数tip函数的形式参数要和函数的实参个数相匹配函数的实参是数组形参也可以是写成数组形式的形参如果是一维数组数组大小可以省略不写形参如果是二维数组行可以省略不写但是列不能省略数组传参形参是不会创建新的数组的形参操作的数组和实参的数组是同一个数组七、嵌套调用与链式访问1.函数的嵌套调用2.函数的链式访问将一个函数的返回值作为另外一个函数的参数像链条一样将函数串起来就是函数的链式访问最里层的printf先打印12因为12 有2个数字中间的printf返回2因为2是1个数字因此最外层的printf返回值1因此最后的返回结果为1221八、函数的声明和定义函数在使用之前要保证先声明后使用即要先告诉编译器有一个函数叫什么参数是什么返回类型是什么1.单个文件内部的函数声明以及定义2.多文件下的函数的声明以及定义tip创建项目的时候提前创建一个目录后面把项目相关的文件都放到同一个目录其实头文件包含的本质是把头文件中的信息拷贝到这里九、static与externstatic 与extern 都是C语言中的关键字static是静态的意思可以修饰局部变量、全局变量、函数exturn可以用来声明来自外部文件的符号1.作用域和生命周期1.1作用域变量能被访问到的有效范围空间哪里能访问ex局部变量的作用域是变量所在的局部范围全局变量的作用域是整个工程项目1.2生命周期变量从【创建--使用--销毁】完整的存活时间段时间内存存活多久2.static2.1 static 修饰局部变量n 的生命周期变长了n出了函数也不销毁了原因是static 修饰局部变量改变了变量的生命周期生命周期的改变本质上是改变了变量的存储类型本来一个局部变量是存储在内存的栈区的但是被 static 修饰后存储到了静态区。存储在静态区的变量和全局变量是一样的生命周期就和程序的生命周期一样了只有程序结束变量才销毁内存才回收但作用域是不变的。2.2 static 修饰全局变量全局变量具有外部链接属性static 修饰全局变量后只能在自己所在的.c文件中使用别的.c文件就算写extern int num;也访问不到static 修饰全局变量可以实现文件隔离防止多文件全局名冲突。2.3 static 修饰函数函数与全局变量一样是具有外部链接属性的用法与全局变量一样。

相关新闻

Windows 11恢复经典开始菜单:组策略与注册表终极指南

Windows 11恢复经典开始菜单:组策略与注册表终极指南

1. 为什么我们还在怀念那个“经典”的开始菜单? 如果你和我一样,是从 Windows 95、XP 甚至 Windows 7 一路用过来的老用户,那么第一次打开 Windows 11 时,那个居中、圆角、图标巨大、功能却似乎被“简化”的开始菜单,很…

2026/8/13 22:34:19 阅读更多 →
个人核心技能体系构建与实战应用指南

个人核心技能体系构建与实战应用指南

很多开发者在职业生涯的某个阶段都会遇到类似的瓶颈:技术栈似乎很熟练,但面对新的业务领域或更高的职位要求的时,却感到无从下手。这种焦虑往往不是因为不够努力,而是缺乏一套系统的方法来审视自己的技能树。我们常常陷入“盲目学…

2026/8/13 22:34:19 阅读更多 →
Flutter在OpenHarmony上实现底部弹窗的实践与优化

Flutter在OpenHarmony上实现底部弹窗的实践与优化

1. 项目概述 Flutter作为Google推出的跨平台UI框架,与OpenHarmony这一国产开源操作系统的结合,正在开辟移动开发的新天地。这次我们要实现的底部弹窗(Bottom Sheet)功能,是移动应用中极为常见的交互组件——从电商App的…

2026/8/13 22:34:19 阅读更多 →

最新新闻

毕设项目分享 机器学习服务器异常日志分类(源码+论文)

毕设项目分享 机器学习服务器异常日志分类(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 设计框架4 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统…

2026/8/14 0:40:41 阅读更多 →
株洲网站建设公司专业建议:中小企业如何在数字化浪潮中打破同质化竞争困境

株洲网站建设公司专业建议:中小企业如何在数字化浪潮中打破同质化竞争困境

做互联网这行久了,你会发现一个很有趣的现象。很多人在找“株洲网站建设公司”的时候,第一反应往往是:“能不能给我做一个跟某某网站一模一样的?”或者“我要最便宜的,两千块搞定?”作为一名在株洲本地摸爬滚打多年的建站老兵,今天我想和大家聊点掏心窝子的话,不聊虚头…

2026/8/14 0:40:41 阅读更多 →
深度解析苏州电子商务网站建设的核心逻辑:从品牌突围到流量变现的实战指南

深度解析苏州电子商务网站建设的核心逻辑:从品牌突围到流量变现的实战指南

做传统生意的朋友,最近是不是总觉得生意难做?以前在苏州观前街或者狮山商圈开个店,只要地段好、货品全,就能坐地收钱。但现在呢?看着店门口人流稀疏,心里那是真着急。其实,这不是你一个人的问题,这是时代的洪流。如今,消费者的脚步早就从线下转到了线上,从PC端的鼠标…

2026/8/14 0:40:41 阅读更多 →
深度解析粉末涂料技术支持如何赋能东莞网站建设企业的数字化营销突围战

深度解析粉末涂料技术支持如何赋能东莞网站建设企业的数字化营销突围战

在如今这个数字化浪潮席卷全球商业领域的时代,传统制造业与互联网技术的边界正在变得前所未有的模糊。作为一个长期深耕于工业制造与互联网营销交叉领域的观察者,我时常在思考这样一个问题:一家原本只专注于生产高质感粉末涂料的工厂,或者一家立志做好本地服务型B2B网站建设…

2026/8/14 0:40:41 阅读更多 →
为什么要给企业建设网站:在数字化转型浪潮中,中小企业必须清醒认识的五大核心价值

为什么要给企业建设网站:在数字化转型浪潮中,中小企业必须清醒认识的五大核心价值

在这个互联网信息爆炸的时代,很多老板或者创业者的脑海里都有这样一个疑问:我都已经在微信上做宣传了,也在抖音、小红书上面发了内容,甚至还搞了私域流量池,为什么还非要费劲巴拉地去搭建一个属于自己公司的官方网站呢?毕竟,开发网站要花银子,维护网站要花精力,还得担…

2026/8/14 0:40:41 阅读更多 →
并发 01 · 开篇-并发为什么难

并发 01 · 开篇-并发为什么难

这是「Java 并发编程」系列的第一篇。开个头,先问一个看着简单、却几乎每个后端都栽过跟头的问题:两个线程同时给一个 int 变量各加一万次,最后结果一定是两万吗? 答案是——不一定,甚至大概率不是。一段这么朴素的代码…

2026/8/14 0:38:41 阅读更多 →

日新闻

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

在这个流量为王、视觉至上的互联网时代,对于临沂乃至整个山东乃至全国的传统中小企业来说,拥有一张精美的“数字名片”早已不再是可选项,而是生存的必答题。每当夜幕降临,沂河两岸灯火辉煌,物流之都的喧嚣逐渐沉淀为对未来的思考。我们常常听到老板们在茶余饭后探讨:为什…

2026/8/14 0:00:26 阅读更多 →
Flutter与OpenHarmony实现剧本杀组队表单开发实战

Flutter与OpenHarmony实现剧本杀组队表单开发实战

1. 项目概述在移动应用开发领域,跨平台框架Flutter因其高效的开发体验和出色的性能表现,已经成为众多开发者的首选。而OpenHarmony作为新兴的操作系统平台,其开放性和灵活性为开发者提供了全新的可能性。本文将聚焦于一个实际应用场景——剧本…

2026/8/14 0:00:26 阅读更多 →
大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

在这个数字化浪潮席卷全球的今天,企业想要在激烈的市场竞争中站稳脚跟,拥有一张好看的“数字名片”已经远远不够了。很多老板在刚开始接触互联网业务时,都有一个共同的困惑:为什么我花了钱建的网站,就像是在真空中自嗨?访客进来转了两圈就跑了,线索石沉大海,甚至连客服…

2026/8/14 0:01:27 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →