C++中的函数你真的理解了吗
📅 2026/7/12 5:55:51
👁️ 次浏览
1 概述作用将一段经常使用的代码进行封装起来减少重复代码。一个较大的程序一般分为若干个程序块每个模块实现特定的功能。2 函数的定义及调用函数的定义一般主要有5个步骤:1、返回值类型一个函数可以返回一个值需要知道这个值的类型。2、函数名给函数起个名字。3、参数表列使用该函数时传入的数据。4、函数体语句花括号内的代码函数内需要执行的语句。5、return 表达式和返回值类型挂钩函数执行完后返回相应的数据。定义语法123456返回值类型 函数名(参数列表){函数体语句;return表达式;}调用语法1函数名(参数)示例1234567891011121314151617181920212223#includeiostreamusingnamespacestd;//返回值类型 函数名 (参数列表){ 函数体语句 ; return表达式;}//定义一个两整型数相加的函数intadd(intnum1,intnum2)//num1和num2并没有真实数据只是一个形式上的参数简称形参{intsum num1 num2;returnsum;}intmain(){//main函数中调用add函数inta 3, b 4;//函数调用语法函数名称(参数)intc add(a, b);//a和b是真实的数据称为实际参数简称实参cout c endl;system(pause);return0;}3 值传递所谓值传递就是函数调用时实参将数值传入给形参。值传递时如果形参发生任何改变并不会影响实参。12345678910111213141516171819202122#includeiostreamusingnamespacestd;//定义一个交换数字的函数//因为函数没有返回值所以可以定义函数类型为void-无类型。voidswap(intnum1,intnum2){cout 交换前 num1 num2 endl;inttemp num1;num1 num2;num2 temp;cout 交换后 num1 num2 endl;}intmain(){inta 10, b 20;swap(a, b);//形参的改变并不影响实参本身cout a a \nb b endl;system(pause);return0;}值传递实际上是为形参开辟一块新的内存地址将实参的值传递给形参的内存中对形参进行运算所以并不涉及到实参的改变。4 函数的常见形式常见的函数样式有4种无参无返有参无返无参有返有参有返示例12345678910111213141516171819202122232425262728293031323334#includeiostreamusingnamespacestd;//1.无参无返voidtest01(){cout 无参无返 endl;}//2.有参无返voidtest02(intnum1,intnum2){cout 有参无返 num1 num2 endl;}//3.无参有返inttest03(){cout 无参有返 ;return1000;}//4.有参有返inttest04(intnum){cout 有参有返 ;returnnum;}intmain(){test01();test02(100, 200);cout 返回值为 test03() endl;cout 返回值为 test04(100) endl;system(pause);return0;}5 函数的声明作用告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。当自己创建的函数位于main函数下方的时候编译器会先运行main函数从而找不到我们定义的函数而报错所以需要函数声明这样我们的函数定义就可以放在main函数的下方了。函数的声明可以多次但是函数的定义只能有一次。语法1数据类型 函数名(参数列表)示例1234567891011121314151617181920#includeiostreamusingnamespacestd;//函数的声明intmaxtest(inta,intb);intmain(){//int maxtest(int a, int b); 写这里也可以inta 10;intb 20;cout maxtest(a, b) endl;system(pause);return0;}//定义函数intmaxtest(inta,intb){returna b ? a : b;}6 函数的分文件编写作用:让代码结构更加清晰作用让代码结构更加清晰函数分文件编写一般有4个步骤创建后缀名为.h的头文件创建后缀名为.cpp的源文件在头文件中写函数的声明在源文件中写函数的定义-----注意下面的这个例子使用了swap的函数名而上面源文件中的函数名已经有了swap一个项目里不能对同一函数名多次定义所以可以手动改一下上面值传递.cpp中的的swap函数名随便换一个其他的就行。1.2.3.123#includeiostreamusingnamespacestd;voidswap(inta,intb);4.123456789#includeswap.hvoidswap(inta,intb){inttemp a;a b;b temp;cout a a endl;cout b b endl;}1234567891011#includeiostream#includeswap.husingnamespacestd;intmain(){inta 10, b 20;swap(a, b);system(pause);return0;}总结本篇文章就到这里了希望能够给你带来帮助
5分钟快速上手:Docker容器中运行QEMU虚拟机的终极指南 【免费下载链接】qemu-docker QEMU in a Docker container. 项目地址: https://gitcode.com/gh_mirrors/qe/qemu-docker
QEMU-docker是一个革命性的开源项目,它将强大的QEMU虚拟化技术与Dock…
📅 2026/7/12 5:54:51
在日常的Linux系统管理和开发工作中,我们经常会遇到进程卡死、资源占用异常、服务响应缓慢等问题。这些问题背后往往与进程的状态管理机制密切相关。理解Linux进程状态及其切换原理,不仅能帮助我们快速定位问题,还能优化程序性能,…
📅 2026/7/12 5:54:51
猫抓Cat-Catch 2.7.0:浏览器资源嗅探的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch
在现代网络环境中,你是…
📅 2026/7/12 5:54:51
Premiere Pro 2024 Photoshop 2024 双软件协作:5步导出透明背景GIF动图在动态设计领域,透明背景GIF动图因其灵活性和兼容性,成为UI设计、社交媒体运营和视频制作的必备元素。本文将深入解析如何通过Adobe生态中Premiere Pro和Photoshop的无缝…
📅 2026/7/12 6:50:06
如果你正在为企业部署AI应用而头疼,那么Glean这个新平台可能正是你需要的解决方案。企业AI应用面临的最大挑战不是技术本身,而是如何将分散在不同系统中的数据、模型和权限整合成一个统一的智能工作流。想象这样一个场景:销售团队用Salesforc…
📅 2026/7/12 6:50:06
SHX与TTF字体深度对比:CAD设计中的字体选型策略与性能优化在CAD设计领域,字体选择绝非简单的审美问题,而是直接影响工作效率、文件兼容性和最终输出质量的关键决策。本文将全面剖析SHX与TTF两大字体体系的技术差异,从底层原理到实…
📅 2026/7/12 6:50:06
LabVIEW 2048游戏UI进阶:自定义控件与事件结构实现3种交互优化 在工业自动化领域,LabVIEW以其图形化编程优势成为测试测量系统的首选工具。但鲜为人知的是,这套源自美国国家仪器的开发平台同样能打造出令人惊艳的游戏界面体验。本文将突破传统…
📅 2026/7/12 6:50:06
数据分析避坑指南:识别辛普森悖论的2个关键信号与验证方法当你盯着上周的转化率报表时,发现整体数字下降了0.5%。正准备写分析报告时,市场部的同事突然兴奋地跑来说他们负责的所有渠道转化率都在提升——这个看似矛盾的场景,很可能…
📅 2026/7/12 6:50:06
1. 项目背景与核心器件选型在嵌入式系统设计中,电源管理模块往往决定了整个系统的稳定性和能效表现。我们选择了MAX77654和PIC18F8722这对组合来构建高效电源管理解决方案,主要基于以下考量:MAX77654是Analog Devices推出的一款高度集成的电源…
📅 2026/7/12 6:49:06
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/12 0:15:59
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54