C++中的函数是实现代码复用模块化的基本单元。下面从定义、调用、参数传递、常见样式、声明和分文件编写等方面进行介绍。

1. 函数定义

函数定义包括返回类型、函数名、参数列表和函数体:


返回类型 函数名(参数列表) {// 函数体return 返回值; // 如果返回类型不是void
}

示例:

int add(int a, int b) {return a + b;
}

2. 函数调用

直接使用函数名和参数即可调用:

int result = add(3, 5); // 调用add函数,result为8

3. 值传递

C++函数参数默认采用值传递,即将实参的值复制一份传递给形参,函数内对形参的修改不会影响实参。
示例:

void foo(int x) {x = 100;
}
int main() {int a = 10;foo(a);std::cout << a << std::endl; // 输出10,a未被修改
}

4. 常见的函数样式

• 无参无返回值:

  void printHello() {std::cout << "Hello" << std::endl;}

• 有参无返回值

  void printNum(int n) {std::cout << n << std::endl;}

• 有参有返回值:

  double square(double x) {return x * x;}

• 默认参数:

  int sum(int a, int b = 5) {return a + b;}

5. 函数声明

在函数定义前或分文件编写时,需要先声明函数原型:

int add(int a, int b); // 声明

6. 分文件编写

通常将函数声明放在头文件(.h),定义放在源文件(.cpp),调用时包含头文件。
示例:
• add.h

  #pragma onceint add(int a, int b);

• add.cpp

  #include "add.h"int add(int a, int b) {return a + b;}

• main.cpp

  #include <iostream>#include "add.h"int main() {std::cout << add(2, 3) << std::endl;return 0;}  

总结

• 函数定义包括返回类型、参数列表和函数体
• 调用时传递参数,默认值传递
• 常见样式有无参、无返回值、有默认参数等。
• 分文件编写时需声明函数原型,便于模块化和代码管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85222.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85222.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85222.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文讲清辐射传输模型

一、为什么需要进行辐射传输反演&#xff1f; 遥感影像中&#xff0c;我们看到的是从地表和大气混合后到达传感器的总辐射信号。这个信号既包含了地物反射&#xff0c;也包含了大气分子和气溶胶的散射吸收、以及地表自身或大气的热发射。若要从中定量获得植被生理参数、水体理…

视频编码怎么选?H.264、H.265、VP9、AV1全解析

你有没有遇到过这样的情况&#xff1a;下载了一个高清电影&#xff0c;却发现播放器打不开&#xff1b;或者上传视频到网站时提示“格式不支持”&#xff1f;其实&#xff0c;这背后和视频编码格式密切相关。 那么问题来了&#xff1a;视频编码格式哪个好&#xff1f; 今天简鹿…

单例模式:全局唯一实例的设计艺术

引言&#xff1a;为什么需要单例模式 在软件开发中&#xff0c;某些对象只需要一个全局实例&#xff1a; 数据库连接池配置管理器日志记录器线程池缓存系统 使用new关键字多次创建这些对象会导致&#xff1a; #mermaid-svg-TyfdXbNvcmqwnA6C {font-family:"trebuchet m…

性能优化 - 案例篇:11种优化接口性能的通用方案

文章目录 Pre1. 加索引&#xff1a;最低成本&#xff0c;最大收益常见问题&#xff1a;工具命令&#xff1a;建议&#xff1a; 2. SQL 优化&#xff1a;比加索引再进阶一步常见 5 类问题&#xff1a;实用建议&#xff1a; 3. 远程调用&#xff1a;从串行改并行&#xff0c;性能…

Kafka - 并发消费拉取数据过少故障分析

文章目录 背景与问题描述原理与原因分析参数优化思路示例配置验证与监控实践注意事项与风险总结 背景与问题描述 场景描述 使用 Spring Boot Spring Kafka&#xff0c;注解 KafkaListener(topics..., id..., ...)&#xff0c;批量监听&#xff08;方法签名为 public void doHa…

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发&#xff0c;公司安排开发app&#xff0c;临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 Arkts …

Qt基础相关

模态对话框和非模态对话框 在一个页面进行交互时弹出的一个新页面&#xff0c;新页面不堵塞旧页面的交互&#xff0c;这就是非模态对话框。 模态对话框 模态对话框就是当该对话框弹出后会阻塞其他窗口的响应事件&#xff0c;必须先关闭该对话框&#xff0c;其他窗口才会继续…

《汇编语言:基于X86处理器》第2章 x86处理器架构

本章重点是与 x86 汇编语言相关的底层硬件。有说法认为&#xff0c;汇编语言是直接与机器交流的理想软件工具。如果是真的&#xff0c;那么汇编程序员就必须非常熟悉处理器的内部结构与功能。本章将讨论指令执行时处理器内部发生的一些基本操作&#xff0c;以及操作系统如何加载…

最小生成树算法的解题思路与 C++ 算法应用

一、最小生成树算法针对问题类型及概述 先来简要陈述一下树的概念&#xff1a;一个由 N N N 个点和 N − 1 N-1 N−1 条边组成的无向连通图。由此&#xff0c;我们可以得知生成树算法的概念&#xff1a;在一个 N N N 个点的图中找出一个由 N − 1 N-1 N−1 条边组成的树。…

feign.FeignException$NotFound: [404 ] during [POST] to [http://ti/ti/v1/i/se

feign.FeignException$NotFound: [404 ] during [POST] to [http://ti/ti/v1/i/send 原因&#xff1a;多个地方注册 FeignClient(name “ti”, path “/ti/v1/i/send/repeat”) 解决&#xff1a;删除一个即可

Mac m1 通过docker镜像安装kafka

kafka依赖zookeeper&#xff0c;因此需要使用docker同时安装zookeeper和kafka。 macOS的docker在容器和宿主之间无法通过ip直接通信&#xff0c;因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时&#xff0c;需要使用docker.for.mac.host.internal或者host…

01初始uni-app+tabBar+首页

初始uni-apptabBar首页 1. uni-app1.1 新建uni-app项目1.2 目录结构1.3 把项目配置运行到微信开发者工具 2. tabBar3.1 首页3.1 配置网络请求3.2 轮播图区域3.3 分类导航区域3.4 楼层区域 1. uni-app ​ uni-app 是使用 Vue.js 开发前端应用的框架。开发者编写一套代码&#x…

微信小程序,微信授权手机号码

uniapp中index.vue: <template><view class"content"><button open-type"getPhoneNumber" getphonenumber"getPhoneNumber"type"primary">授权手机号登录 </button></view></template><scrip…

数据结构 学习 图 2025年6月14日 12点57分

搜索算法 深度优先搜索 一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点&#xff0c;尽可能深的搜索树的分支。 DFS核心思想 深度优先&#xff1a;尽可能深地搜索树的分支 回溯思想&#xff1a;当节点v的所在边都已被探寻过&#xff0c;搜索将回溯到发现节点v的…

H3C路由器使用PBR 实现两条互联网专线互为备份

实验拓扑 图 1-1 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP 地址的主机位为…

深化信创生态布局!聚铭网络与海量数据完成产品兼容性互认证

近日&#xff0c;聚铭网络成功与海量数据完成了一系列产品的兼容性互认证&#xff0c;并获得了由海量数据颁发的产品兼容互认证书。这一成就标志着双方在技术整合方面迈出了重要一步。 经过全面严格的测试&#xff0c;聚铭网络自主研发的安全系列产品&#xff0c;包括聚铭下一…

Unity AR+ 百度AI 实现 物体识别与对应英文翻译

一、前言 我目前实现了拍照保存到手机的功能 我想进一步优化&#xff0c;实现通过手机摄像头实时识别眼前的物体&#xff0c;显示对应的英文的功能。 1.项目技术栈&#xff1a;Unity 2022.3.53 Vuforia 11 百度物体识别API 百度翻译API 2.功能目标&#xff1a;使用手机摄像…

Vue.js第二节

计算属性、事件绑定、条件判断、遍历循环 计算属性&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

从开源代码入场无人机学术研究到商业化市场的全路径指南-优雅草卓伊凡

从开源代码入场无人机学术研究到商业化市场的全路径指南-优雅草卓伊凡 引言&#xff1a;开源代码在无人机研究中的重要性 优雅草卓伊凡在这里告诉大家&#xff0c;如果真的要开始进入无人机领域&#xff0c;我们需要一步步开始研究。目前先去看看开源无人机代码是尤为重要的&…

window11中开启ubuntu22.04子系统

一、启用Windows子系统 打开控制面板 选择程序然后点击“启用或关闭Windows功能” 勾选如下2项&#xff0c;点击确定 二、安装内核升级包 打开链接https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi下载内核升级包&#xff0c;打开后安装、重启电脑…