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

C语言程序设计核心详解 函数和预编译命令

1.函数的定义和使用1.1 函数定义C语言程序的框架有两种一个main()单框架一个main()多个子函数注一个源程序文件可由一个或多个函数组成一个C语言程序可以由一个或多个源程序文件组成C程序执行总是从main()开始结束于main()结束可调用其它函数函数不能嵌套定义但可以相互调用不能调用main()函数的分类无参函数和有参函数库函数和用户自定义函数main()函数格式42头4体2头返回值类型 函数名 形式参数列表体{} 函数体代码语言cAI代码解释函数返回值类型 函数名(形式参数列表) { 函数体 }说明(1)函数体可以没有语句但不能没有花括号函数名必须有一对小括号。(2)定义有参函数时形参的定义可以采用传统方式或现代方式两种。代码语言cAI代码解释一般来说我们都用现代方式 int maxint xint y 传统方式 int max(int x,int y) Int x,y 不能定义形参以外的其它变量 {}(3)不能在定义函数时在函数首部小括号后直接跟分号如代码语言cAI代码解释float fun(int x,int y) { }(4) 定义函数时必须采用传统方式或现代方式指定的形参类型(5) 函数返回值类型两类(非void和void代码语言cAI代码解释形式1非void: int fun(int x, int y) { return 表达式 }代码语言cAI代码解释形式1void: void fun(int x, int y) { 一定不要加return语句 }1.2 函数调用方式1:非void型变量名函数名实参列表;方式2:void型函数名实参列表;1.3 函数使用例题分析1.3.1 原型声明有时候主函数在上其他函数在下面所以需要先在主函数上方声明函数告诉计算机有这个函数才能在主函数中使用方式1(库函数:#include头文件方式2声明的格式:声明的格式函数类型 函数名形参类型1 形参1形参类型2 形参2.....函数类型 函数名 形参类型1形参类型2.....1.3.2 函数调用过程在进行函数调用时系统将实参值对应地按位置次序对应传给形参是一种值的单向传递。2.变量三属性变量三属性类型作用范围存储类别类型定义作用范围根据位置分为内部局部外部全局存储类别auto static register extern2.1 类型类型名 变量名列表例如 int xyz2.2 作用范围局部变量:(或称内部变量定义在一个函数内部定义的变量为局部变量局部变量只能在它所在的函数内有效在不同的函数中可以出现同名的变量它们分别属于不同的变量。复合语句中定义的变量只能在此复合语句中有效所有形式参数都是局部变量 全局变量或称外部变量定义在函数外部定义的变量为全局变量全局变量的有效范围是在本文件内从定义该变量的位置开始到本文件的结束。全局变量可以在它的有效范围内被每个函数引用。 3. 在同一文件中若全局变量和局部变量同名局部变量屏蔽全局变量例代码语言cAI代码解释#includestdio.h int a,b; void fun() { a100; b200; } main() { int a5,b7; fun(); printf(%d%d\n,a,b); }2.3 存储类别--四种之一2.3.1 auto类别变量a. auto类别变量用完后释放所占用空间b.局部变量默认为auto类别无初始化时初始值为随机值c.使用时间短一般都为auto类别变量2.3.2 static类别变量a.static类别从定义到程序运行程序均占用存储空间。b.全局变量默认为static类别无初始化时初值为0。c.static类别变量只进行一次初始化。在做题的过程中static可以用方框圈起2.3.3 register类别变量a.register类别只能是局部变量才能被说明b.一般不能直接使用2.3.4 extern类别变量a.extern类别变量可以加大变量的作用范围b.两格说明格式格式1:定义同时说明类别存储类别 类型名 变量名格式2:分别定义说明类型名变量名存储类别 变量名例子代码语言cAI代码解释#includestdio.h //静态变量static main() { extern x,y; printf(%d,%d\n,x,y); } int x,y;3.预编译命令3.1 预编译命令文件包含include#include#include3.2 宏第一种无参宏定义格式#define 宏名 宏内容功能用一个指定的标识符宏名来代表一串字符如代码语言cAI代码解释#define PI 3.14.1592 #define N 10注意宏名我们一般用大写字母遵守用户自定义标识符命名古泽 如#define PI abcdefg#define可以在函数外定义也可以在函数内定义但该命令应该在单独一行上。 #undef命令可以提前终止宏名的作用域。在进行宏定义时可以引用已经定义的宏名进行层层置换在进行宏替换时必须先替换完所有的宏后再运算同时替换过程中不能乱加括号。第二种带参宏定义格式#define 宏名(参数列表) 宏内容如#define s(x,y) x*y2功能提供了一种更加灵活的替换方式。注意这种格式是原模原样替换就原模原样的替换然后再计算注(1)在定义有参宏时参数列表必须用一对小括号且小括号和宏名不能有空格(2)对有参宏名进行替换时需要将形参改成相应的实参并且注意分清形参和实参的对应关系。例子代码语言cAI代码解释#includestdio.h #define s(a,b) a*b main() { printf(%s%d,s(3,5)); printf(%s%d,s(32,57)); printf(%s%d,s((32),(57))); }代码语言cAI代码解释3*515,第一个结果是15 32*5720第二个结果是20 (32)*(57)5*1260,第三个结果是60拓展补充递归问题可以画图做

相关文章:

C语言程序设计核心详解 函数和预编译命令

1.函数的定义和使用1.1 函数定义C语言程序的框架有两种:一个main()单框架一个main()多个子函数注:一个源程序文件可由一个或多个函数组成一个C语言程序可以由一个或多个源程序文件组成C程序执行总是从main()开始,结束于main()结束&#xff1b…...

终极视频加速神器:如何用Video Speed Controller提升300%学习效率

终极视频加速神器:如何用Video Speed Controller提升300%学习效率 【免费下载链接】videospeed HTML5 video speed controller (for Google Chrome) 项目地址: https://gitcode.com/gh_mirrors/vi/videospeed 你是否曾因视频播放速度太慢而浪费宝贵时间&…...

C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数

位运算和c语言文件操作详解1. 位运算位运算的操作对象只能是整型或字符型数据C语言提供6种位运算符:& 按位与| 或^ 异或~ 取反<< 左移>> 右移复合赋值运算符:&,| ,^,<<&#xff0c;>>1.1 按位与运算代码语言&#xff1a;cAI代码解释1&11 全…...

2026年GEO源头厂家选型指南:深度解析技术壁垒与商业价值,助你选对不踩坑

在AI大模型重塑信息检索与商业流量的当下&#xff0c;GEO&#xff08;生成式引擎优化&#xff09;已成为企业获取精准曝光、实现高效转化的核心战场。然而&#xff0c;面对市场上层出不穷的GEO服务商&#xff0c;决策者往往陷入选择困境&#xff1a;是选择短期见效的“代运营”…...

大规模深度学习性能调优:自顶向下的五件套

GPU 利用率上不去&#xff1f;显存莫名 OOM&#xff1f;分布式训练卡死不动&#xff1f;这些问题不能靠"再加一张卡"解决&#xff0c;必须靠 Profiling 把瓶颈找出来。性能调优的正确顺序是自顶向下&#xff1a;先在框架层看哪个算子慢&#xff0c;再下到系统层看 CP…...

使用 Elasticsearch 与 Kibana 中的 PromQL 调查 Kubernetes 基础设施问题

作者&#xff1a;来自 Elastic Miguel Snchez 本文将逐步介绍如何使用 PromQL 在 Elastic Observability 中对 Kubernetes 集群范围内的 CPU 使用情况进行调查&#xff0c;从集群到命名空间再到出现问题的 Pod。 Elasticsearch 现在已经原生支持 PromQL&#xff0c;并且你可以通…...

GRT 深度解剖:单芯片雷达基础模型的全栈技术图谱

文献&#xff1a;Huang T., Prabhakara A., Chen C., et al. "Towards Foundational Models for Single-Chip Radar." ICCV, 2025. 项目主页&#xff1a;https://wiselabcmu.github.io/grt/ 一、论文全景架构&#xff1a;从问题到答案的完整地图 我们先不急着钻细节…...

瓷砖规格有哪些?瓷砖用量如何计算?

瓷砖规格有哪些?瓷砖用量如何计算? 目前建材市场上出现的瓷砖规格有许多种,每一种瓷砖规格所装饰出来的效果都各有千秋,如果想节省瓷砖和降低造价,那么在购买瓷砖前计算要铺贴的使用量就十分必要。了解瓷砖规格以及瓷砖用量,对于购买瓷砖的消费者而言,一定会有所帮助的…...

Android Studio中文界面完整指南:3分钟实现全中文开发环境

Android Studio中文界面完整指南&#xff1a;3分钟实现全中文开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack Android St…...

创优必看!鲁班奖工程的八项基本要求

创优必看!鲁班奖工程的八项基本要求 作为建筑工程行业的最高级别奖项,鲁班奖的评选工作严格贯彻执行国家有关基本建设的法律、法规和方针政策,以及国家、行业现行的技术标准、施工规范和技术规程。那么,什么样的工程才能荣获鲁班奖呢? 本文根据《鲁班奖评选工作细则》总…...

全面掌握Wand-Enhancer:零成本解锁WeMod Pro高级功能的实用攻略

全面掌握Wand-Enhancer&#xff1a;零成本解锁WeMod Pro高级功能的实用攻略 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 想免费体验WeMod Pro的所有高…...

Adobe-GenP 3.0:AutoIt实现的Adobe CC二进制补丁机制深度分析

Adobe-GenP 3.0&#xff1a;AutoIt实现的Adobe CC二进制补丁机制深度分析 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe Creative Cloud系列软件作为创意行业…...

终极SOCD清理工具:Hitboxer让你的游戏操作精准如职业选手

终极SOCD清理工具&#xff1a;Hitboxer让你的游戏操作精准如职业选手 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在激烈的游戏对战中&#xff0c;明明同时按下了左右方向键&#xff0c;角色却做出奇…...

Windows Cleaner:专业级Windows系统优化终极指南

Windows Cleaner&#xff1a;专业级Windows系统优化终极指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统设计的开源系统…...

BetterGI:原神自动化助手终极指南 - 告别重复劳动,智能解放双手

BetterGI&#xff1a;原神自动化助手终极指南 - 告别重复劳动&#xff0c;智能解放双手 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一…...

OpenClaw插件实战:为Telegram审批消息添加一键操作按钮

1. 项目概述&#xff1a;为OpenClaw的Telegram频道添加一键审批按钮如果你正在使用OpenClaw&#xff0c;并且像我一样&#xff0c;把Telegram作为主要的交互和通知渠道&#xff0c;那你肯定对下面这个场景不陌生&#xff1a;AI助手在执行某个需要授权的命令&#xff08;比如exe…...

Blender 3MF插件终极指南:如何实现3D打印工作流无缝对接

Blender 3MF插件终极指南&#xff1a;如何实现3D打印工作流无缝对接 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender 3MF插件是连接3D建模与3D打印制造的关键桥梁…...

从安装到实战:用Python+Neo4j Driver构建你的第一个社交网络图谱(含完整代码)

从零构建社交网络图谱&#xff1a;Python与Neo4j全流程实战指南 社交网络分析正在重塑我们对复杂关系的理解。想象一下&#xff0c;当我们需要分析Twitter上的信息传播路径、LinkedIn的职业关系网或是电商平台的用户推荐系统时&#xff0c;传统的关系型数据库往往显得力不从心。…...

Ubuntu 18.04上Qt程序报‘xcb’插件错误?别急着重装,试试这个ldd排查法

Ubuntu 18.04 Qt程序xcb插件错误排查指南&#xff1a;从日志分析到依赖修复 当你满怀期待地在Ubuntu 18.04上启动精心开发的Qt应用程序时&#xff0c;屏幕上突然跳出"Could not load the Qt platform plugin xcb"的错误提示&#xff0c;这种挫败感开发者都深有体会。…...

通过API Key管理与审计日志功能加强企业级应用的安全管控

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过API Key管理与审计日志功能加强企业级应用的安全管控 应用场景类&#xff0c;企业级应用在集成大模型能力时&#xff0c;需严格…...

在Node.js服务中集成Taotoken实现稳定的大模型调用方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js服务中集成Taotoken实现稳定的大模型调用方案 应用场景类&#xff0c;针对需要构建AI功能的后端开发者&#xff0c;阐述如…...

LinkSwift:九大网盘直链下载,告别限速烦恼

LinkSwift&#xff1a;九大网盘直链下载&#xff0c;告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

QueryExcel终极指南:5分钟批量查询上百个Excel文件的完整解决方案

QueryExcel终极指南&#xff1a;5分钟批量查询上百个Excel文件的完整解决方案 【免费下载链接】QueryExcel 多Excel文件内容查询工具。 项目地址: https://gitcode.com/gh_mirrors/qu/QueryExcel 你是否曾在海量Excel文件中迷失方向&#xff1f;当数据分散在数十个甚至上…...

从卡顿到流畅:WaveTools如何让你的《鸣潮》体验脱胎换骨

从卡顿到流畅&#xff1a;WaveTools如何让你的《鸣潮》体验脱胎换骨 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否曾经在《鸣潮》的激烈战斗中因为突然的卡顿而错失良机&#xff1f;是否觉得60帧的…...

2025届毕业生推荐的六大降AI率神器解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对于有那种需求去规避人工智能内容检测的用户来讲&#xff0c;在这儿推荐使用专业的降AI率网…...

深入剖析`ReentrantReadWriteLock`源码——虚拟线程时代机遇、挑战与演进

引言&#xff1a;并发范式的革命性转变 Java 21 正式引入了虚拟线程&#xff08;Virtual Threads&#xff09;&#xff0c;这标志着 Java 并发编程进入了一个全新的时代。Project Loom 的目标是让编写、维护和观测高吞吐量的并发应用程序变得如同编写顺序代码一样简单。虚拟线程…...

WPS-Zotero插件终极指南:5步实现科研写作效率翻倍的完整教程

WPS-Zotero插件终极指南&#xff1a;5步实现科研写作效率翻倍的完整教程 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为学术论文的文献管理而烦恼吗&#xff1f;每次…...

QMC音频转换工具终极指南:快速免费解锁加密音乐文件

QMC音频转换工具终极指南&#xff1a;快速免费解锁加密音乐文件 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾遇到过下载的音乐文件无法在普通播放器中播放的困扰…...

告别配置烦恼!用VS2019属性表一键搞定OpenCV 4.3环境(附常见错误排查)

告别配置烦恼&#xff01;用VS2019属性表一键搞定OpenCV 4.3环境&#xff08;附常见错误排查&#xff09; 在计算机视觉开发中&#xff0c;OpenCV无疑是最受欢迎的库之一。然而&#xff0c;对于许多开发者来说&#xff0c;配置OpenCV环境往往成为项目开始前的第一道门槛。特别是…...

Windows Cleaner终极指南:快速免费解决C盘爆红问题

Windows Cleaner终极指南&#xff1a;快速免费解决C盘爆红问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾因C盘爆红而焦急万分&#xff1f;系统运行…...