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

C语言——函数的使用

无参无返回值

  • 语法格式如下:
// 函数定义
void 函数名() {函数体
}// 函数调用
函数名();
  • 函数名是标识符的一种,需要遵循规则
  • 函数只需要定义一次,反复调用
  • 只定义函数, 不调用函数, 函数永远不会被执行
  • 案例需求:
    • 编写一个函数,里面实现2个数字相加,并打印相加后的结果
    • 示例代码:
#include <stdio.h>// 函数定义
void my_add() {// 实现2个数字相加,并打印相加后的结果int res = 1 + 2;printf("res = %d\n", res);
}int main() {// 函数调用my_add();return 0;
}
  • 执行流程
    在这里插入图片描述

有参无返回值

  • 函数参数的作用:增加函数的灵活性
    • 可以根据需求在调用函数时, 通过参数传入不同的数据
  • 语法格式如下:
// 函数定义
void 函数名(形参列表) {函数体
}// 函数调用
函数名(实参列表);
  • 实训和形参的关系:从左往右,一一对应
  • 案例需求:
    • 编写一个函数,实现2个数相加,2个数通过参数传递
  • 示例代码:
#include <stdio.h>// 函数定义
void my_add(int a, int b) {// 实现2个形参相加,并打印相加后的结果int res = a + b;printf("%d + %d = %d\n", a, b, res);
}int main() {// 函数调用my_add(10, 20);return 0;
}

●执行流程
在这里插入图片描述

有参有返回值

返回值基本语法

  • 函数返回值的作用:函数外部想使用函数内部的数据
  • 语法格式如下:
// 函数定义
返回类型 函数名(形参列表) {函数体return 和返回类型一致的数据(或变量);
}// 函数调用
和返回类型一致的变量 = 函数名(实参列表);
  • return是函数的专属关键字,只能用在函数内容
  • 案例需求:
    • 编写一个函数,实现2个数相加,2个数通过参数传递,返回累加结果给外部使用
  • 示例代码:
#include <stdio.h>// 函数定义
int my_add(int a, int b) {// 实现2个形参相加,并返回累加的结果int res = a + b;return res;
}int main() {// 函数调用int temp = my_add(10, 20);printf("temp  = %d\n", temp);return 0;
}
  • 执行流程
    在这里插入图片描述

返回值注意点

  • return的作用是结束函数
    • 函数内,return后面的代码不会执行
  • 示例代码
#include <stdio.h>// 函数定义
void func() {printf("11111111111111111\n");return; // 结束函数,函数内后面代码不会执行printf("222222222222222222\n");
}int main() {// 函数调用func();return 0;
}

函数的声明

  • 如果函数定义代码没有放在函数调用的前面,这时候需要先做函数的声明
  • 所谓函数声明,相当于告诉编译器,函数是有定义的,再别的地方定义,以便使编译能正常进行
  • 注意:一个函数只能被定义一次,但可以声明多次
#include <stdio.h>// 函数的声明,分号不能省略
// 函数声明的前面可以加extern关键字,也可以不加
// extern int my_add(int a, int b);
int my_add(int a, int b);
// 另一种方式,形参名可以不写
// int my_add(int, int );int main() {// 函数调用int temp = my_add(10, 20);printf("temp  = %d\n", temp);return 0;
}// 函数定义
int my_add(int a, int b) {// 实现2个形参相加,并返回累加的结果int res = a + b;return res;
}

函数案例

  • 需求:自定义一个函数,返回2个整数的最大值
  • 示例代码:
#include <stdio.h>// 函数定义
int my_max(int a, int b) {if (a > b) {return a;} else {return b;}
}int main() {// 函数调用int res = my_max(100, 200);printf("res = %d\n", res);return 0;
}

相关文章:

C语言——函数的使用

无参无返回值 语法格式如下&#xff1a; // 函数定义 void 函数名() {函数体 }// 函数调用 函数名();函数名是标识符的一种&#xff0c;需要遵循规则函数只需要定义一次&#xff0c;反复调用只定义函数, 不调用函数, 函数永远不会被执行案例需求&#xff1a; 编写一个函数&am…...

DVWA XSS

反射型 low 查看源代码&#xff0c;没有任何过滤 构造 medium 这里是过滤了 high 这里把双写和大小写和JavaScript都过滤了,用事件来绕过<img src0 οnerrοralert(“xss”)> impossible 这里使用htmlspecialchars进行实体转换并且输出的结果还不能使用事件来…...

石油化工智慧安监方案:TSINGSEE青犀视频AI智能识别安全生产风险预警平台建设

一、行业背景 石油化工生产存储企业属于高温、高压、易燃、易爆、有毒的危险行业&#xff0c;其生产装置大型化、密集化、生产工艺复杂、生产过程紧密耦合。随着互联网技术的发展&#xff0c;运用先进的AI、物联网、大数据、云计算等技术手段不断提高石油化工行业的安全监管水…...

R语言图形绘制

&#xff08;1&#xff09;条形图 > barplot(c(1,2,4,2,6,4,3,5)) > barplot(c(1,2,4,2,6,4,3,5),horiz TRUE) #besideTRUE 表示将多个组别的图形并排显示&#xff0c;使它们在水平方向上对齐 #而当 besideFALSE&#xff08;默认值&#xff09;时&#xff0c;多个组别的…...

2023第七届蓝帽杯 初赛 web LovePHP

LovePHP 直接给了源码。 network查看到&#xff0c;PHP版本是7.4.33 题目要求我们GET一个my_secret.flag参数&#xff0c;根据PHP字符串解析特性&#xff0c;PHP需要将所有参数转换为有效的变量名&#xff0c;因此在解析查询字符串时&#xff0c;它会做两件事&#xff1a; 删…...

Pytorch 的基本概念和使用场景介绍

文章目录 一、基本概念1. 张量&#xff08;Tensor&#xff09;2. 自动微分&#xff08;Autograd&#xff09;3. 计算图&#xff08;Computation Graph&#xff09;4. 动态计算图&#xff08;Dynamic Computation Graph&#xff09;5. 变量&#xff08;Variable&#xff09; 二、…...

git 基础入门

Git基础入门 Git是一个分布式 版本管理系统&#xff0c;用于跟踪文件的变化和协同开发。 版本管理&#xff1a;理解成档案馆&#xff0c;记录开发阶段各个版本 分布式&集中式 分布式每个人都有一个档案馆&#xff0c;集中式只有一个档案馆。分布式每人可以管理自己的档案…...

openssl 生成自签名证书

1、openssl生成CA根证书 1.1、生成CA私钥 openssl genrsa -out root_ca.key 2048 注意&#xff1a;私钥必须妥善保管&#xff0c;既不能丢失&#xff0c;也不能泄露。如果发生丢失和泄露&#xff0c;必须马上重新 生成&#xff0c;以使旧的证书失效。 1.2、通过ca私钥生成pem格…...

微服务dubbo和nexus

微服务是一种软件开发架构风格&#xff0c;它将一个应用程序拆分成一组小型、独立的服务&#xff0c;每个服务都可以独立部署、管理和扩展。每个服务都可以通过轻量级的通信机制&#xff08;通常是 HTTP/REST 或消息队列&#xff09;相互通信。微服务架构追求高内聚、低耦合&am…...

uView1.0的Upload组件上传图片

<template><u-uploadref"uUpload":file-list"fileList"accept"image/jpeg,image/png" //允许选择图片文件:sizeType"sizeType":max-size"2 * 1024 * 1024" //限制上传的图片文件最大为 2Moversize"over…...

【LeetCode题目详解】第九章 动态规划part03 343. 整数拆分 96.不同的二叉搜索树 (day41补)

本文章代码以c为例&#xff01; 一、力扣第343题&#xff1a;整数拆分 题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输…...

半导体制造常用软件工具总结

半导体制造常用软件工具总结 CIM&#xff1a;Computer Integrated Manufacturing 设备自动化&#xff0c;总称MES&#xff1a;Manufacturing Execution System 制造执行系统EAP&#xff1a;Equipment Automation Programming 设备自动化&#xff0c;是MES与设备的桥梁APC&…...

基于Python的IOS自动化测试环境搭建

文章目录 一、测试架构介绍1.1 WebDriverAgent原理分析1.2 tidevice原理分析二、环境安装2.1 iOS 设备安装 WebDriverAgent2.2 安装iTunes2.3 安装tidevice2.4 安装facebook-wda自动化三、操作流程四、Weditor的安装和使用一、测试架构介绍 以下为测试架构原理图 手机端的WDA…...

技术领导力实战笔记25

25&#xff5c;用心做好“鼓励式”管理 激发正能量 授权 分工作&#xff1a; 老人干新事&#xff0c;新人干老事&#xff0c;强者干难事&#xff0c;弱者干细事 新人干老事 所谓新人&#xff0c;是对业务产品不了解&#xff0c;对工作流程不清晰的岗位新人。对于新人来说&…...

设计模式-职责链+反射

文章目录 前言简单版本的职责链加反射职责链反射思路过程总结 前言 最近学习设计模式对于职责链的学习有了一些深入的了解故此有了这篇博客 简单版本的职责链加反射 职责链模式&#xff08;Chain of Responsibility Pattern&#xff09;和反射&#xff08;Reflection&#x…...

Middleware ❀ Kafka功能与使用详解

文章目录 1. 概述1.1. 消息队列1.2. 应用场景1.3. 工作模式1.4. 基础结构1.4.1. 结构组件1.4.2. 数据同步1.4.3. ACK机制1.4.4. 分区机制1.4.4.1. 使用Partition Key写入1.4.4.2. 轮询写入 - 默认规则1.4.4.3. 指定Partition写入 1.4.5. Offset偏移量1.4.5.1. 消息顺序性1.4.5.…...

python3.11教程1:python基础语法、程序控制、函数

文章目录 一、Python简介1.1 为什么学习python1.2 python安装与配置1.3 python解释器1.4 命令行参数1.4.1 sys.argv变量1.4.2 -c和-m选项 1.5 解释器的运行环境1.5.1 编码格式1.5.2 编码声明 二、Python基础语法2.1 行结构2.2 变量&#xff08;标识符&#xff09;2.3 字节串2.4…...

【C++】关于using namepace xxx 使用命名空间和冲突

官方定义 namespace是指 标识符的各种可见范围。命名空间用关键字namespace来定义。 命名空间是C的一种机制&#xff0c;用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。 基本使用 编译及执行命令&#xff1a; g test.cpp -o test ./…...

Linux常用命令——cupsenable命令

在线Linux命令查询工具 cupsenable 启动指定的打印机 补充说明 cupsenable命令用于启动指定的打印机。 语法 cupsenable(选项)(参数)选项 -E&#xff1a;当连接到服务器时强制使用加密&#xff1b; -U&#xff1a;指定连接服务器时使用的用户名&#xff1b; -u&#xff…...

基于Stable Diffusion的AIGC服饰穿搭实践

本文主要介绍了基于Stable Diffusion技术的虚拟穿搭试衣的研究探索工作。文章展示了使用LoRA、ControlNet、Inpainting、SAM等工具的方法和处理流程&#xff0c;并陈述了部分目前的实践结果。通过阅读这篇文章&#xff0c;读者可以了解到如何运用Stable Diffusion进行实际操作&…...

Leaflet坐标系实战:从设置到动态切换的完整指南

1. Leaflet坐标系基础概念解析 第一次接触Leaflet坐标系时&#xff0c;我也被各种专业术语搞得晕头转向。简单来说&#xff0c;坐标系就是用来确定地图上每个点位置的规则系统。就像我们在地球上使用经纬度定位一样&#xff0c;数字地图也需要明确的坐标参考。 Leaflet默认支持…...

ROS机器人开发实战:利用tf2库高效处理四元数、欧拉角与旋转矩阵的转换

1. 为什么机器人开发需要处理多种姿态表示 在机器人开发中&#xff0c;我们经常需要处理各种姿态数据。无论是移动机器人的定位信息、机械臂末端执行器的位姿&#xff0c;还是传感器数据的融合&#xff0c;都离不开对物体在三维空间中位置和朝向的描述。但有趣的是&#xff0c;…...

告别‘main分支被拒绝’:用VSCode内置Git图形界面轻松同步远程仓库更新

告别‘main分支被拒绝’&#xff1a;用VSCode内置Git图形界面轻松同步远程仓库更新 当你沉浸在VSCode中编写代码&#xff0c;点击那个熟悉的"推送"按钮时&#xff0c;突然弹出一个红色错误提示——! [rejected] main -> main (non-fast-forward)。这种场景对于依赖…...

老旧Windows 7系统硬件适配难题的技术解决方案:开源社区驱动的扩展支持包

老旧Windows 7系统硬件适配难题的技术解决方案&#xff1a;开源社区驱动的扩展支持包 【免费下载链接】win7-sp2 UNOFFICIAL Windows 7 Service Pack 2, to improve basic Windows 7 usability on modern systems and fully update Windows 7. 项目地址: https://gitcode.com…...

2025年3月AI领域核爆录:从模型开源战争到智能体价值重估

2025年3月AI领域核爆录&#xff1a;从模型开源战争到智能体价值重估 如果AI是一场马拉松&#xff0c;那么2025年3月就是全员冲刺的最后一公里。 这个月&#xff0c;历史的轴线被剧烈地扭动&#xff0c;科技的叙事以周为单位改写。它不再关乎单一的“突破”&#xff0c;而关乎生…...

Qwen3-VL量化版实测:8bit精度仅降0.13%的奥秘

Qwen3-VL量化版实测&#xff1a;8bit精度仅降0.13%的奥秘 【免费下载链接】Qwen3-VL-8B-Instruct-w8a8s-310 项目地址: https://ai.gitcode.com/Eco-Tech/Qwen3-VL-8B-Instruct-w8a8s-310 导语&#xff1a;阿里云Qwen3-VL视觉语言模型推出8bit量化版本Qwen3-VL-8B-Inst…...

ESP8266高速移位寄存器驱动库:3.8μs级GPIO直控

1. FastEsp8266ShiftRegister 库概述FastEsp8266ShiftRegister 是一款专为 ESP8266 微控制器深度优化的高速移位寄存器驱动库。其核心设计目标是突破传统软件模拟 SPI 或标准 GPIO 操作在 ESP8266 上的性能瓶颈&#xff0c;实现接近硬件 SPI 时序精度、但具备更高灵活性的并行/…...

揭秘手机摄像头隐藏功能:如何实现无网文件传输?

揭秘手机摄像头隐藏功能&#xff1a;如何实现无网文件传输&#xff1f; 【免费下载链接】cfc Demo/test android app for libcimbar. Copy files over the cell phone camera! 项目地址: https://gitcode.com/gh_mirrors/cfc/cfc 你是否曾在没有网络的情况下急需传输文件…...

如何做好网站SEO关键词优化_如何快速提升网站在 Google 上的排名

<h3 id"seo_google">如何做好网站SEO关键词优化_如何快速提升网站在 Google 上的排名</h3> <p>在当今数字化时代&#xff0c;网站的成功很大程度上取决于其在搜索引擎上的表现。搜索引擎优化&#xff08;SEO&#xff09;是一个复杂而又极其重要的领…...

别让你的 Coding Agent 瞎忙活,你最缺的可能是这套 Harness 规则

别让你的 Coding Agent 瞎忙活&#xff0c;你最缺的可能是这套 Harness 规则 团队把 Claude Code、Codex、Cursor 这类工具接进日常开发后&#xff0c;最先暴露出的瓶颈通常在协作环节。 一个简单的 bug fix 任务&#xff0c;agent 可能会扩出十几个文件的改动。 跑了一行测试…...