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

C语言函数全解析 | 零基础入门指南

📚 C语言函数全解析 | 零基础入门指南

📑 目录

  1. 🌟 什么是函数?
  2. 🔧 函数的定义与结构
  3. ⚙️ 函数参数与返回值
  4. 💡 函数声明与调用
  5. 🏁 Main函数详解
  6. 🚀 实战案例演示

1. 什么是函数

  • 功能单元:独立完成特定任务的代码模块
  • 调用机制:可重复调用提高代码复用性
  • 设计优势
    • ✅ 解耦复杂逻辑
    • ✅ 增强代码可读性
    • ✅ 便于调试维护

2. 函数的定义与结构

📐 标准语法

返回值类型 函数名(形参列表) {// 函数体return 返回值;
}

🔑 命名规范

  1. 允许字符:字母/数字/下划线(a-z, A-Z, 0-9, _
  2. 首字符禁止数字
  3. 区分大小写(Add ≠ add
  4. 禁止使用关键字(int, return等)

🌰 加法函数示例

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

3. 函数参数与返回值

🎯 参数传递

// 无参函数示例
void printHello() {printf("Hello World!\n");
}// 多参函数示例
float calculateBMI(float height, float weight) {return weight / (height * height);
}

🔙 返回值要点

  • 默认返回类型为int
  • void表示无返回值
  • return语句终止函数执行

4. 函数声明与调用

📢 函数原型声明

// 声明加法函数
int add(int a, int b); int main() {int result = add(5, 3);printf("5+3=%d\n", result);return 0;
}// 函数定义
int add(int a, int b) {return a + b;
}

🖥️ 运行结果:

5+3=8

5. Main函数详解

🚪 标准入口函数

// 标准写法
int main(void) {// 程序代码return 0;
}// 带命令行参数
int main(int argc, char *argv[]) {printf("参数个数:%d\n", argc);return 0;
}

⚠️ 常见误区

// 不推荐写法
void main() { /*...*/ }  
main() { /*...*/ }

6. 实战案例演示

🧮 综合计算器示例

#include <stdio.h>// 函数声明
int add(int a, int b);
float divide(float x, float y);int main() {int sum = add(10, 20);float result = divide(50.0, 3.0);printf("加法结果:%d\n", sum);printf("除法结果:%.2f\n", result);return 0;
}// 加法函数
int add(int a, int b) {return a + b;
}// 除法函数
float divide(float x, float y) {if(y == 0) {printf("错误:除数不能为0!\n");return 0;}return x / y;
}

🖥️ 运行结果:

加法结果:30
除法结果:16.67

📌 学习小贴士

  1. 函数长度建议不超过屏幕高度
  2. 合理使用注释说明函数功能
  3. 优先使用有意义的英文命名

👉 欢迎关注我的CSDN,获取更多编程干货!
👍 觉得有用请点赞收藏,评论区交流学习心得~

相关文章:

C语言函数全解析 | 零基础入门指南

&#x1f4da; C语言函数全解析 | 零基础入门指南 &#x1f4d1; 目录 &#x1f31f; 什么是函数&#xff1f;&#x1f527; 函数的定义与结构⚙️ 函数参数与返回值&#x1f4a1; 函数声明与调用&#x1f3c1; Main函数详解&#x1f680; 实战案例演示 1. 什么是函数 功能单…...

驻场运维服务方案书(Word文件)

目 录 第一章 背景分析 1.1. 项目背景 1.2. 项目目标 1.3. 系统现状 1.3.1. 网络系统 1.3.2. 设备清单梳理 1.3.3. 应用系统 第二章 需求分析及理解 2.1. 在重要日期能保障信息系统安全 2.2. 信息系统可长期安全、持续、稳定的运行 2.3. 提升发现安全问题、解决安全…...

【时时三省】(C语言基础)用printf函数输出数据2

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 格式字符 在输出时&#xff0c;对不同类型的数据要指定不同的格式声明&#xff0c;而格式声明中最重要的内容是格式字符。常用的有以下几种格式字符。 ( 1 ) d格式符。用来输出一个有符号的…...

django框架 [面试篇]

Django 是一个基于 Python 的web框架&#xff0c;遵循"快速开发&#xff0c;不重复造轮子(dont repeat yourself)"的原则&#xff0c;帮助用户构建web应用。 而 Django 它本身提供了一些全栈式的一些组件&#xff0c;包括了 ORM&#xff0c;模板引擎&#xff0c;表单…...

吴恩达机器学习笔记复盘(三)Jupyter NoteBook

Jupyter NoteBook Jupyter是一个开源的交互式计算环境&#xff1a; 特点 交互式编程&#xff1a;支持以单元格为单位编写和运行代码&#xff0c;用户可以实时看到代码的执行结果&#xff0c;便于逐步调试和理解代码逻辑。多语言支持&#xff1a;不仅支持Python&#xff0c;还…...

【Docker项目实战】使用Docker部署serverMmon青蛇探针(详细教程)

【Docker项目实战】使用Docker部署serverMmon青蛇探针 一、serverMmon介绍1.1 serverMmon 简介1.2 主要特点二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载serverMmon镜像五、…...

信息学奥赛一本通 1449:【例题2】魔板

题目 1449&#xff1a;【例题2】魔板 分析 首先注意&#xff1a;输入是按顺时针给出的&#xff0c;但我们处理时需要按正常顺序排&#xff0c;可以用以下代码读入 string s(8, 0); // 初始化全零字符串 cin>>s[0]>>s[1]>>s[2]>>s[3]; cin>>…...

Linly-Talker:开源数字人框架的技术解析与影响

一、引言&#xff1a;AI 数字人的发展趋势 近年来&#xff0c;数字人&#xff08;Digital Human&#xff09; 技术迅速发展&#xff0c;从最早的 2D 虚拟主播&#xff0c;到如今能够进行实时交互的 3D 智能助手&#xff0c;AI 在多模态交互领域的应用愈发广泛。各大互联网公司…...

你的完美主义:从缺陷到超能力

所属专栏&#xff1a;《逻辑辨证系列》 前情回顾&#xff1a; 《完美还是完成》&#xff08;一&#xff09;&#xff1a;完成还是完美—完成大于完美 时间、机会、情绪成本 先完成 … 本期&#xff1a; 《完美还是完成》&#xff08;二&#xff09;&#xff1a;你的完美主…...

Java 8 + Tomcat 9.0.102 的稳定环境搭建方案,适用于生产环境

一、安装 Java 8 安装 OpenJDK 8 bash sudo apt update sudo apt install openjdk-8-jdk -y 验证安装 bash java -version 应输出类似: openjdk version “1.8.0_412” OpenJDK Runtime Environment (build 1.8.0_412-8u412-ga-1~22.04-b08) OpenJDK 64-Bit Server VM (bui…...

Java基础关键_021_集合(五)

目 录 一、HashMap 1.key 存储自定义类型 2.Hash 表存储原理 3.重写 hashCode 和 equals 方法 4.key 为 null 5.jdk 8 后新特性 &#xff08;1&#xff09;初始化时 &#xff08;2&#xff09;插入 &#xff08;3&#xff09;数据结构 6.容量 二、LinkedHashMap 1.…...

mcp 是一种什么协议,怎么构建mcpserver,怎么实现多智能体的调用

MCP&#xff08;Message Control Protocol&#xff09;是一种用于分布式系统中多智能体通信的协议框架&#xff0c;特别适合于构建多智能体系统。下面我将介绍MCP协议的基本原理以及如何构建MCP服务器和实现多智能体调用。 MCP协议概述 MCP协议主要用于定义智能体之间如何交换…...

Nginx的流式响应配置详解

现在大模型场景繁多&#xff0c;项目中涉及nginx转发大模型的流式数据时&#xff0c;需配置nginx的转发策略&#xff1a; location /streaming {proxy_pass http://backend_server;proxy_cache off; # 关闭缓存proxy_buffering off; # 关闭代理缓冲chunked_transfer_encoding …...

windows10 清理 C 盘

系统自带功能清理 磁盘清理&#xff1a;右键单击 C 盘&#xff0c;选择“属性” &#xff0c;点击“磁盘清理” &#xff0c;系统会开始扫描可清理的文件&#xff0c;如临时文件、回收站文件、系统更新备份文件等。扫描完成后&#xff0c;勾选想要清理的文件类型&#xff0c;点…...

浅谈Linux中的Shell及其原理

浅谈Linux中的Shell及其原理 Linux中Shell的运行原理github地址前言一、Linux内核与Shell的关系1.1 操作系统核心1.2 用户与内核的隔离 二、Shell的演进与核心机制2.1 发展历程2.2 核心功能解析2.3 shell的工作流程1. 用户输入命令2. 解析器拆分指令3. 扩展器处理动态内容变量替…...

ARM内部寄存器与常用汇编指令(ARM汇编)

1 地址空间&RISC与CISC CISC&#xff1a;复杂指令集计算机 RISC&#xff1a;精简指令集计算机 RISC 与 CISC 的比较 2 ARM内部寄存器 3 ARM汇编概述 RISC精简指令可以大致分为几类&#xff1a; 1.内存读写 2.运算 3.跳转/分支 4.比较 而指令的集合就称之为“指令集”…...

【QT5 Widgets示例】Model/View编程初探

文章目录 Model/ViewModel/View编程的优点常见Model类和View类Model/View应用程序示例只读的表格修改文本外观显示变化的数据设置表格标头可编辑视图示例树结构视图示例获取视图选中项 Model/View Model/View编程的优点 Model/View编程介绍&#xff1a;https://doc.qt.io/qt-…...

一键优化右键菜单,高效又清爽!

打工人们你们好&#xff01;这里是摸鱼 特供版~ 电脑右键菜单杂乱无章&#xff0c;常用功能被淹没&#xff1f;图标显示异常、打印出错让人手足无措&#xff1f;别担心&#xff0c;Easy Context Menu来帮你&#xff01;这是一款右键菜单管理工具&#xff0c;能快速清理不必要的…...

排查数据库的正在执行的占用的慢sql语句,可以查看生产的执行sql语句时间

1. 生产报错异常&#xff1a; org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: master - Interrupted during connection acquisition2.在数据库执行查询生…...

Java泛型程序设计使用方法

Java泛型程序设计是Java语言中一项强大的特性&#xff0c;它允许你编写更加通用和类型安全的代码。以下是Java泛型程序设计的使用方法和技巧&#xff1a; 1. 基本概念 泛型类&#xff1a;可以定义一个类&#xff0c;其中的某些类型是参数化的。 public class Box<T> {pr…...

成绩排序(结构体排序)

成绩排序 #include<stdio.h> #include<stdlib.h> struct student{char name[50];int score;int order; }; int flag; int cmp(const void *a,const void *b){struct student *s1(struct student*)a;struct student *s2(struct student*)b;if(s1->scores2->…...

【redis】lua脚本

在分布式系统与高并发架构的战场中&#xff0c;开发者们始终在与两个永恒的命题博弈&#xff1a;数据一致性与系统性能。当我们试图用Redis构建高速缓存、实现分布式锁或设计秒杀系统时&#xff0c;往往会陷入这样的困境——如何在保证原子性的同时&#xff0c;避免网络往返带来…...

Oracle中的INHERIT PRIVILEGES权限

Oracle中的INHERIT PRIVILEGES权限 存储过程和用户函数的AUTHID属性调用者权限vs定义者权限一个简单的示例INHERIT PRIVILEGES权限的含义INHERIT PRIVILEGES权限的安全隐患注意到Oracle 19c数据库中有如下权限信息: SQL> select grantor,grantee,table_name,privilege fro…...

Kafka相关的面试题

以下是150道Kafka相关的面试题及简洁回答&#xff1a; Kafka基础概念 1. 什么是Kafka&#xff1f; Kafka是一个分布式、可扩展、容错的发布-订阅消息系统&#xff0c;最初由LinkedIn开发&#xff0c;现为Apache项目。它适用于高吞吐量的场景&#xff0c;如大数据处理和实时数据…...

OpenHarmony-XTS测试

OpenHarmony-XTS测试 OpenHarmony-XTS测试环境搭建测试准备开始运行PS OpenHarmony-XTS测试 针对OpenHarmony版本进行XTS测试使用记录。 windows环境。 以acts套件为例。 环境搭建 获取测试套件&#xff0c;两种方法 1&#xff09;官网下载&#xff1a;https://www.openharm…...

【物联网-WIFI】

物联网-WIFI ■ ESP32-C3-模块简介■ ESP32-C3-■ ESP32-C3-■ WIFI-模组■ WIFI-■ WIFI- ■ ESP32-C3-模块简介 ■ ESP32-C3- ■ ESP32-C3- ■ WIFI-模组 ■ WIFI- ■ WIFI-...

作业9 (2023-05-05 数组的定义和初始化)

第1题/共11题【单选题】 关于一维数组初始化,下面哪个定义是错误的?( ) A.int arr[10] = {1,2,3,4,5,6}; B.int arr[] = {1,2,3,4,5,6}; C.int arr[] = (1,2,3,4,5,6); D.int arr[10] = {0}; A:正确,10个int的一段连续空间,前6个位置被初始化为1,2,3,4,5,6,其他…...

C语言中的流程控制语句

一.流程控制语句的分类&#xff1a; 1.顺序结构 概念&#xff1a;从上往下依次执行&#xff0c;也是程序默认的执行顺序 2.分支结构 概念&#xff1a;程序在执行的过程中出现了岔路&#xff08;我们只能选择一条支线进行执行&#xff09; &#xff08;1&#xff09;.if语句…...

linux常用基本指令汇总

文章目录 01. ls指令02. pwd指令03. cd指令04. touch指令05. mkdir指令06. rmdir指令07. rm指令08. man指令09. cp指令10. mv指令11. cat指令11. more指令12. less指令13. head指令14. tail指令15. time指令16. cal指令17. find指令18. grep指令19. zip/unzip指令20.tar指令21.…...

Python 与 JavaScript 交互及 Web 逆向分析全解析

一、引言 在当今数字化时代,软件开发的复杂性和多样性不断增加,不同编程语言之间的交互与协作变得愈发重要。Python 凭借其简洁易读的语法、丰富的库和强大的数据处理能力,在数据科学、自动化脚本编写等领域占据着重要地位。而 JavaScript 作为前端开发的核心语言,以其在网…...