C语言(函数与数组)
8.函数和一维字符型数组传参char数组名[100];定义返回值 函数名(char数组名[]){函数体}调用函数名(数组名);void print_str(char str[]){}print_str(str);注意1.一维字符型数组作为函数参数传递时只需要传递数组即可不需要传递长度因为字符型型数组保存的字符串末尾有\0结束标志。2.数组作为函数参数传递时本质传递的是数组的首元素地址在被调函数中sizeof(数组名形参)----》本质求地址在计算机内存中的大小。练习1.封装mystrlen的函数返回数组中有效字符的个数2.封装mystrcpy函数将源字符型数组中的元素拷贝到目标字符型数组。void mystrcpy(char dst[], char src[]);3.封装mystrcat函数将源字符型数组中的元素拼接到目标字符型数组元素后边void mystrcat(char dst[], char src[]);4.封装mystrcmp函数实现两个字符串的比较返回0 , 0, 09.函数和二维整形数组传参定义返回值 函数名int数组名[][列数]int行数{}调用函数名(数组名行数)int a[3][4] {0};void print_2D_array(int a[][4], int hang){}printf_2D_array(a, sizeof(a)/sizeof(a[0]));注意1.二维整形数组传参时形参必须说明是二维数组行数可以省略列数不能省略。形参int a[][列数]2.在自定义的函数中行数无法计算所以可以通过参数的方式传递3.在自定义的函数中列数可以计算sizeof(a[0]) / sizeof(a[0][0]);10.函数和二维字符型数组传参定义返回值 函数名(char数组名[][列数], int行数){}调用函数名(数组名 行数);char str[3][100] {0};void print_2DC_array(char str[][100], int hang){}print_2DC_array(str, 3);11.变量的作用域和生命周期1.标识符作用域空间角度作用域标识符/变量可以被使用的范围局部作用域在{}内部被定义的变量的作用范围局部变量定义在局部作用域中的变量函数内部定义的变量、函数形参全局作用域可使用范围在全局{}外面。比如定义函数全局变量定义在全局作用域的变量。注意1.标识符必须先定义再使用。2.在相同作用域中不能定义同名标识符变量、函数。3.在具有包含关系的作用域中出现了同名标识符外层标识符在内层不可见就近原则2.变量的生命周期时间角度变量的生命周期从变量的空间开辟到空间回收对应的生存期。动态生命周期局部变量在被定义的时候开辟空间超出其作用域范围空间被回收。静态生命周期和程序运行的生命周期一样长全局变量从程序运行之前空间开辟程序运行结束空间被回收。static修饰的静态变量从程序运行之前空间开辟程序运行结束空间被回收。1.作用域没发生变化局部作用域。2.生命周期变为静态生命周期。总结局部变量1.作用域在局部超出局部作用域无法访问2.动态生命周期定义时开辟空间超出作用范围空间被回收3.局部变量保存在栈区未被初始化为随机值。全局变量/static静态变量1.全局变量作用域在全局static静态变量作用域在局部2.静态生命周期程序运行之前空间开辟程序运行结束空间被回收3.全局变量/static静态变量保存在数据区。4.全局变量/static静态变量未被初始化时默认为0。5.未初始化的全局变量/static静态变量存储在.bss段.bss段系统默认清0.6.已初始化的全局变量/static静态变量存储在.data段。3.变量的存储类型int a存储类型 数据类型 变量名变量的存储类型auto默认存储类型static1. static修饰局部变量静态变量具备静态生命周期延长局部变量的生命周期。2. static修饰函数该函数只允许在当前原文件中被调用。3. static修饰全局变量该变量只允许在当前文件中使用。register寄存器变量。register修饰变量时建议编译器将该变量存储在寄存器中。register int i 0;register仅仅是一个建议。int *p;p i; //x i是寄存器变量无法取址extern修饰全局变量/函数声明。1. extern修饰全局变量用来声明全局变量表示允许被外部的.c使用。2. extern声明函数表示该函数允许被外部的.c使用。12.预处理命令1. gcc的编译的四个步骤2.预处理命令宏定义不带参宏---》符号常量#define标识符 值#define PI 3.1415带参宏宏函数#define标识符(参数1 参数2参数3)宏的实现#define PI (3.14)#define ADD(a, b) ((a)(b))#define MAX(a, b) ((a) (b) ? (a) : (b))#define AREA(r) ((PI) * (r) * (r))注意1.宏作为预处理命令负责在预处理阶段展开不做运算只是代码的替换2.宏标识符最好大写定义宏时不能加分号3.宏只是代码的替换能加就加括号。4.宏和函数的区别宏是预处理阶段的代码替换、会使得代码体积增大函数是在运行时的调用需要保护现场和恢复现场头文件包含#include stdio.h#include head.h头文件放1.可以有包含的其他头文件2.声明的数据类型3.宏定义4.函数和全局变量的声明注意1. 表示包含的是系统中的头文件让编译器从系统路径下找/usr/include2. 表示包含的头文件是用户自己定义的头文件让编译器从当前路径下寻找。条件编译1.头文件中防止头文件重复包含#ifndef宏#define宏//头文件内容#endif根据“宏”有没有被定义出来决定该头文件中的内容要不要加入到编译中。2.条件编译#if逻辑结果表达式//代码#endif根据“逻辑结果表达式”的结果决定中间的代码要不要加入到编译中//代码屏蔽#if 0//代码#endif3.条件编译#ifdef宏//代码1#else//代码2#endif根据“宏”有没有被定义决定是否编译代码1或者代码2#ifndef宏//代码1#else//代码2#endif

相关新闻

民宿酒店预订小程序全栈开发实战指南

民宿酒店预订小程序全栈开发实战指南

1. 民宿与酒店预订小程序全栈开发指南最近两年,我陆续接手了三个不同规模的民宿预订系统开发项目。从最初简单的展示型小程序,到现在集成了智能定价、房态管理、多平台分销的完整解决方案,踩过的坑足够写一本《小程序开发避坑大全》。今天要分…

2026/8/4 5:46:20 阅读更多 →
1. 2024年挑选高颜值匹克球拍,这几家厂商别错过(入围理由:时间代入+明确目标+动作引导)2. 新手选高颜值匹

1. 2024年挑选高颜值匹克球拍,这几家厂商别错过(入围理由:时间代入+明确目标+动作引导)2. 新手选高颜值匹

请明确你从上述5个标题中选定的标题,以及按照通用文章提示词指令,补充完整核心关键词和长尾词等信息,以便我为你生成文章。例如: 请根据以下要求,撰写一篇关于 “2024年挑选高颜值匹克球拍,这几家厂商别错过…

2026/8/4 5:45:19 阅读更多 →
3小时掌握BepInEx:Unity游戏插件开发从入门到实战

3小时掌握BepInEx:Unity游戏插件开发从入门到实战

1. 项目概述:为什么选择BepInEx作为Unity插件开发的起点?如果你在Unity社区里混过一段时间,尤其是对《英灵神殿》、《腐蚀》这类由Unity开发的PC游戏进行过模组修改,那你大概率听说过BepInEx这个名字。它不是一个官方工具&#xf…

2026/8/4 5:45:19 阅读更多 →

最新新闻

终极macOS炉石传说套牌追踪器:HSTracker完全指南

终极macOS炉石传说套牌追踪器:HSTracker完全指南

终极macOS炉石传说套牌追踪器:HSTracker完全指南 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 想要在炉石传说对战中拥有职业选手般的洞察力吗&#xff1f…

2026/8/4 11:19:18 阅读更多 →
LinkSwift:一站式网盘直链下载助手终极使用指南

LinkSwift:一站式网盘直链下载助手终极使用指南

LinkSwift:一站式网盘直链下载助手终极使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…

2026/8/4 11:19:18 阅读更多 →
番茄小说下载器:5分钟完成小说下载与格式转换的完整指南

番茄小说下载器:5分钟完成小说下载与格式转换的完整指南

番茄小说下载器:5分钟完成小说下载与格式转换的完整指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 还在为找不到心仪的小说资源而烦恼吗?想要轻松…

2026/8/4 11:19:18 阅读更多 →
不限速下载器技术解析与实战应用

不限速下载器技术解析与实战应用

1. 为什么我们需要一款真正不限速的下载器? 十年前我用某雷下载一部2GB的电影花了整整三天,期间经历了17次断线重连。现在随便一个4K视频都超过50GB,传统下载工具的速度瓶颈已经成为数字生活的最大痛点。真正的不限速下载器应该像打开水龙头接…

2026/8/4 11:19:18 阅读更多 →
LLM应用落地必读(十一):数据准入与索引阶段的安全防护

LLM应用落地必读(十一):数据准入与索引阶段的安全防护

在前两篇中,我们先后回答了Agent安全的两个核心问题:攻击者想要什么(第九篇)——从数据外泄到后门植入的六类攻击目标;以及攻击者从哪里下手(第十篇)——从提示词层到供应链层的七大攻击入口。明…

2026/8/4 11:19:18 阅读更多 →
大麦抢票脚本终极指南:告别手动抢票,轻松获取心仪演出门票

大麦抢票脚本终极指南:告别手动抢票,轻松获取心仪演出门票

大麦抢票脚本终极指南:告别手动抢票,轻松获取心仪演出门票 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到演唱会门票而烦恼吗?面对热门演出时&am…

2026/8/4 11:18:18 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →