C语言--函数
1. 函数定义
语法:
类型标识符 函数名(形式参数)
{函数体代码
}
(1)类型标识符 --- 数据类型(函数要带出的结果的类型)
注:数组类型不能做函数返回结果的类型,如果函数不需要带出什么结果,此时返回结果的类型说明符为void,如果返回结果的类型与类型说明符不一致,以类型说明符为准(类型说明符不写,默认为int)。
(2)函数名 --- 标识符,符合标识符命名规则
(3)形式参数 --- 表示改函数需要用到的数据
注:每一个形参变量都得指定类型,实参和形参需要类型匹配,参数个数相同,顺序一一对应,如果不需要接收实际参数,形参一般设计为void
(4)函数体代码 --- 实现函数功能的代码。
写法:
数据类型 形参变量名1,数据类型 形参变量2...
int a,int bint a,b // 不能这样写
2. 函数调用
函数调用的本质:实际上是利用栈的结构,先进后出,保证了函数可以层层嵌套调用。
调用者和被调用者:main函数时整个程序的入口,只能是调用者
注:函数不支持嵌套定义,但是可以嵌套调用
函数名是函数的入口地址。
3. 递归
可以实现循环的功能,是一种特殊的循环。
直接递归:自己调用自己
间接调用:调用其他函数,其他函数调用了自己,这样又实现了调用自己。
代码实现思路:
(1)递推关系 --- 从问题n到问题n - 1;
(2)递推结束的条件
eg:前 n 项的累加求和
sum(n)=> sum(n-1)+ n //递推关系
n = 1; // 结束条件
#include<stdio.h>int sum(int n)
{if(n==1) // 递推结束条件{return 1;}else{return sum(n-1)+n; // 递推关系}
}int main(void)
{int n;printf("Input a num:");scanf("%d",&n);int ret = sum(n);printf("%d\n",ret);return 0;
}
代码运行结果:

4. 数组作为函数参数
(1)数组元素作为函数参数--- a[0]
(2)数组本身作为函数参数--- a
形参--- 写成数组形式,还需要数组长度
实参--- 数组名,数组长度
printfArray(int a[],int len) // 形参printArray(a,len); //调用
eg:打印数组元素
#include<stdio.h>void printArray(int a[],int len) // 定义形参
{int i = 0;for(i = 0;i < len;++i){printf("a[%d] = %d\n",i,a[i]);}
}int main(void)
{int a[] = {1,2,3,4,5,6,7,8,9};int len = sizeof(a)/sizeof(a[0]);printArray(a,len); // 调用时传入实参return 0;
}
相关文章:
C语言--函数
1. 函数定义 语法: 类型标识符 函数名(形式参数) {函数体代码 } (1)类型标识符 --- 数据类型(函数要带出的结果的类型) 注:数组类型不能做函数返回结果的类型,如果函…...
Shell 编程的高级技巧和实战应用
第一步:高级函数和模块化设计 1.1 高级函数设计 探讨函数的参数处理和默认值设置。示例:实现一个可以处理可选参数的函数。 #!/bin/bashgreet() {local name${1:-"World"} # 如果没有提供参数,使用默认值 "World"ech…...
VMWare虚拟机如何连接U盘
检查配置 1)Win R键,输入services.msc,打开服务。 2)将AMware USB Arbitration Services 服务开启,并设置为自动启动; 连接U盘 目前作者了解有两种连接方式,如有其他连接方式,欢…...
【学习笔记】后缀自动机(SAM)
前言 之前对后缀自动机的理解太浅薄了,故打算重新写一篇。 后缀自动机是什么 后缀自动机是一个字符串的所有后缀建起来的自动机。它把所有子串(后缀的前缀)用 O ( n ) O(n) O(n) 的空间装了起来。后缀自动机的边会构成一个 D A G DAG DA…...
Godot的节点与场景
要深入的理解节点与场景,我们需要跳出这两个概念来看他。说的再直白一些godot本质就是一个场景编辑器! 场景的概念应该在我们平时看电影看电视时会经常提到,比如某一个打斗的场景,这个场景可能会被设在某一个街道,那么…...
C++ 学习(2) ---- std::cout 格式化输出
目录 std::cout 格式化输出简介使用成员函数使用流操作算子 std::cout 格式化输出简介 C 通常使用cout输出数据,和printf()函数相比,cout实现格式化输出数据的方式更加多样化; 一方面,cout 作为 ostream 类的对象,该类…...
前端拿不到Long类型成员变量,用@JsonSerialize(using = ToStringSerializer.class)序列化一下
EqualsAndHashCode(callSuper true) Data TableName("la_school_business") Schema(description "商务负责人表") public class SchoolBusiness extends BaseEntity {private static final long serialVersionUID -7124481085999629236L;/*** 商务负责人…...
JWT登录校验流程
jwt令牌的基本概念: 1. JWT(JSON Web Token) 定义:JWT 是一种开放标准(RFC 7519),用于在各方之间作为 JSON 对象安全地传输信息。它可以被验证和信任,因为它是数字签名的。结构&am…...
yarn安装和部署
文章目录 概述安装部署1.构建项目2.测试3.清理构建目录 小结 概述 yarn是一个快速、可靠和安全的JavaScript包管理工具,由Facebook开发。它被设计用来替代npm(Node Package Manager),尽管它与npm在很多方面兼容。yarn提供了以下一…...
Visual Studio的安装教程与使用方法
Visual Studio的安装教程与使用方法 一、Visual Studio的安装教程 1. 准备工作 确认系统要求: 在开始安装Visual Studio之前,请确保您的计算机满足Visual Studio的系统要求这。包括操作系统版本、内存、硬盘空间等。您可以在Visual Studio的官方网站…...
一键换装软件哪个好?6个换装工具让你秒变穿搭达人
#紫色跑道的city穿搭#火了,很多人都开始打卡各种紫色穿搭,展示自己的时尚态度。 但对于没有时间或金钱去精心搭配的我们来说,有没有一种更简单、更快捷的方式,让我们也能轻松跟上潮流呢? 当然有!今天&…...
【EtherCAT】Windows+Visual Studio配置SOEM主站——源码配置
目录 一、准备工作 1. Visual Studio 2022 2. Npcap 1.79 3. SOEM源码 二、源码部署 1. 新建Visual Studio工程 2. 创建文件夹 3. 创建主函数 4. 复制源代码 5. 删除无关项 6. 将soem源码添加进工程 7. 添加soem头文件 8. 配置头文件路径 9. 配置静态库和静态库路…...
GPTPDF深度解析:开源文档处理技术全攻略
GPTPDF深度解析:开源文档处理技术全攻略 在数字化信息时代,PDF文件因其稳定性和跨平台兼容性,已成为学术交流、技术文档和电子书籍等领域的首选格式。然而,PDF文档的处理和内容提取一直是一个难题。随着人工智能技术的飞速发展&a…...
网络学习:应用层DNS域名解析协议
目录 一、简介 二、工作流程 一、简介 DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。 同时,DNS…...
7.怎么配置一个axios来拦截前后端请求
首先创建一个axios.js文件 导入我们所需要的依赖 import axios from "axios"; import Element from element-ui import router from "./router"; 设置请求头和它的类型和地址 注意先注释这个url,还没有解决跨域问题,不然会出现跨域 // axios.defaults.…...
Day17_1--AJAX学习之GET/POST传参
AJAX 简介 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。其实AJAX就可以理解为就是JS。通过AJAX也就实现了前后端分离,前端只写页面,后端生成数据! 现在开始通过实例学习: 1--GET传参 <!…...
golang国内proxy设置
go env -w GOPROXYhttps://goproxy.cn,direct经常使用的两个, goproxy.cn 和 goproxy.io 连接分别是 https://goproxy.cn https://goproxy.io 如果遇到某些包下载不下来的情况,可尝试更换数据源 更推荐使用https://goproxy.cn 速度快,缓存的包多 提醒…...
全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
全网最适合入门的面向对象编程教程:31 Python 的内置数据类型-对象 Object 和类型 Type 摘要: Python 中的对象和类型是一个非常重要的概念。在 Python 中,一切都是对象,包括数字、字符串、列表等,每个对象都有自己的类型。 原文链接: Fre…...
【mongodb】mongodb副本集的搭建和使用
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
Java后端面试复习7.24
lock加锁解锁尝试获取锁方法lock底层基于什么实现lock和lock的底层实现分别面向什么用户lock和synchronized异同如何选择合适的锁ReentrantLock如何实现冲入内部类三个公平和非公平获取锁怎么实现的RL默认公平还是非公平,构造参数ReentrantRedaWriteLock的特性什么是…...
如何快速掌握时空聚类:面向数据分析师的ST-DBSCAN终极指南
如何快速掌握时空聚类:面向数据分析师的ST-DBSCAN终极指南 【免费下载链接】st_dbscan ST-DBSCAN: Simple and effective tool for spatial-temporal clustering 项目地址: https://gitcode.com/gh_mirrors/st/st_dbscan 时空数据分析正成为现代数据科学的重…...
基于高通跃龙IQ-9100的边端协同智能客服系统(2): 边缘端ASR/TTS模型部署实战
📌 前文回顾:在第一篇文章中,我们介绍了边端协同架构的优势、高通跃龙IQ-9100平台的硬件特性以及系统整体架构设计。接下来,我们将进入实战环节,在IQ-9100平台上完成ASR和TTS模型的部署。1. 边缘端模型部署实战 1.1 环…...
C语言完美演绎6-19
/* 范例:6-19 */#include <stdio.h>void main(){for(int a 1,sum0;a<10;sum suma,a)/*将所有的条件写入*/; }...
C++的std--ranges视图转换
C的std::ranges视图转换:现代序列处理的利器 在C20中,std::ranges库的引入彻底改变了序列处理的方式,其中视图转换(View Adaptors)作为核心功能之一,为开发者提供了高效、声明式的数据操作工具。通过视图转…...
ChatGPT AI生成式引擎优化*(GEO)方案
ChatGPT AI生成式引擎优化*(GEO)方案: 技术支持:拓世网络技术开发工作室 1️⃣ 战略规划阶段 目标明确 内容类型 文本:文章、产品描述、文案、技术文档 图像:营销图片、社交媒体图、设计草图 视频/动画&…...
保姆级教学:FLUX.1文生图+SDXL Prompt风格,从环境准备到图片生成的完整流程
保姆级教学:FLUX.1文生图SDXL Prompt风格,从环境准备到图片生成的完整流程 你是否曾经遇到过这样的困扰:明明输入了详细的描述词,但生成的图片却与预期相差甚远?或者尝试混合多种风格时,结果变得不伦不类&…...
cv_resnet18_ocr-detection保姆级教程:从安装到批量处理图片文字
cv_resnet18_ocr-detection保姆级教程:从安装到批量处理图片文字 1. 快速上手:5分钟搞定OCR文字检测 你是不是经常需要从图片里提取文字?比如整理扫描的文档、识别截图里的信息,或者处理一堆商品图片上的标签。手动打字太慢&…...
2026年,正规GEO优化排名公司将如何引领行业新潮流?
在AI搜索全面普及的当下,GEO(生成式引擎优化)成为企业突破曝光瓶颈的核心赛道。到2026年,正规GEO优化排名公司将凭借其专业能力和创新策略,引领行业迈向新的发展阶段。以[上海铪铪网络科技有限公司]为例,我…...
OpenClaw环境迁移:gemma-3-12b-it配置备份与恢复指南
OpenClaw环境迁移:gemma-3-12b-it配置备份与恢复指南 1. 为什么需要环境迁移方案 上周我的主力开发机突然硬盘故障,导致所有数据丢失。最让我头疼的不是代码仓库——它们都有远程备份,而是那套精心调校的OpenClawgemma-3-12b-it环境。花了整…...
Mac开发者必备:OpenClaw联动千问3.5-27B实现代码审查自动化
Mac开发者必备:OpenClaw联动千问3.5-27B实现代码审查自动化 1. 为什么需要代码审查自动化? 作为独立开发者,我经常面临一个尴尬局面:在深夜提交代码后,第二天才发现引入了低级语法错误或潜在漏洞。传统CI工具虽然能捕…...
