深入理解C语言中的static与函数传参

发布时间:2026/8/12 21:20:14

深入理解C语言中的static与函数传参
static:可以限制作用于限制的对象为全局变量或函数。int a 10;如果希望这个全局变量只能在本1.c中使用要 static int a 10;static int fun(); :希望fun函数只能在本模块1.c中使用函数的调用实参的个数要和形参的个数相同int fun(int num) { printf(%d\n,num); } int main() { int a20; fun(a); //main被称为主调函数fun函数被称为被调函数 printf(%d\n,fun(a)) //main把a这个变量传递给了fun函数a被称为实参 num被称为形参 }形参和实参变量名可以不一致若变量类型不一致实参向形参类型转换形参是实参的一个复制品形参和实参不是同一个变量只是把a的变量实参的内容复制一份给形参num变量函数的传参传递值实参将值传递给形参形参是一个副本复制品形参值的变化是无法影响实参的值地址传递在函数调用传参中如果是传递的数组这种即为地址传递。形参获得了实参对应内存空间地址所以就可以通过形参修改实参在被调函数中是可以通过修改形参来修改主调中的实参。在传递数组过程中如果使用直传递那么被调函数中也需要创建一样大的数组有时候数组可能很大在被调函数结束的时候这段空间需要回收在C语言中认为数组也是值传递的话效率非常低下所以传递数组的时候默认地址传递。整型数组传参#includestdio.h #includestdlib.h #includetime.h void arry_fill(int a[],int len) { int i; srand(time(NULL)); for(i0;ilen;i) { a[i]rand()%100; } } void bobble(int a[],int len) { int i,j,t; for(ilen-1;i0;i--) { for(j0;ji;j) { if(a[j]a[j1]) { ta[j]; a[j]a[j1]; a[j1]t; } } } } void print_arry(int a[],int len) { int i; for(i0;ilen;i) { printf(%d ,a[i]); } printf(\n); } int main() { int arr[10]; int len10; printf(before your input: ); arry_fill( arr, len); print_arry(arr,len); printf(\n); printf(result is : ); bobble(arr,len); print_arry(arr,len); return 0; }字符串类型传参形参依然可以修改实参在被调函数定义中只需要传递数组名不需要长度每个字符串都有结束标志‘0’#include stdio.h void my_gets(char str[] ,int len) { int i 0; for( i0;ilen-1;i) //c89 c99 { scanf(%c,str[i]); if( str[i]) { break; } } str[i]\0; } void show_str(char str[]) { int i 0 ; for(i0;\0!str[i];i) { printf(%c,str[i]); } } int mystrlen(char str[]) { //return strlen(str); } int main() { char str[100]{0}; printf(input str:); int len sizeof(str)/sizeof(str[0]); my_gets(str,100); // char [] show_str(str); //printf(str:%s\n,); return 0; }

相关新闻

虚拟电厂聚合商平台安全技术体系深度解读

虚拟电厂聚合商平台安全技术体系深度解读

2026/8/12 21:20:14

文章目录 导读 一、平台定位 1. 虚拟电厂基础链路 2. 虚拟电厂聚合商平台的价值 二、360全方位安全合规架构设计 2.1 终端安全 2.2 网络安全 2.3 平台安全 云安全架构 平台安全组件 应用安全 用户安全 2.4 数据安全 数据生命周期安全防护 数据安全措施 2.5 安全管理 安全开发(…

零基础 | AI应用记忆管理:从短期到长期的完整实践指南

零基础 | AI应用记忆管理:从短期到长期的完整实践指南

2026/8/12 21:20:14

文章目录 📄 文档概述 🔧 技术栈详解 版本兼容性说明 Python LangChain mem0 ChromaDB 技术栈协作关系 技术选型理由 🎯 核心内容 📚 一、记忆的本质:大模型如何拥有长期记忆 短期记忆(Short-term Memory) 长期记忆(Long-term Memory) 二、核心问题与解决方案 🤔…

5分钟搭建幻兽帕鲁专属服务器:Docker容器一键部署完整指南

5分钟搭建幻兽帕鲁专属服务器:Docker容器一键部署完整指南

2026/8/12 21:10:14

5分钟搭建幻兽帕鲁专属服务器:Docker容器一键部署完整指南 【免费下载链接】palworld-server-docker A Docker Container to easily run a Palworld dedicated server. 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-server-docker 你是否曾梦想拥有…

slash-command-dispatch实战案例:如何用/部署命令加速开发流程

slash-command-dispatch实战案例:如何用/部署命令加速开发流程

2026/8/12 22:30:17

slash-command-dispatch实战案例:如何用/部署命令加速开发流程 【免费下载链接】slash-command-dispatch A GitHub action that facilitates "ChatOps" by creating repository dispatch events for slash commands 项目地址: https://gitcode.com/gh_m…

Ubuntu系统下NVM安装与Node.js多版本管理实战指南

Ubuntu系统下NVM安装与Node.js多版本管理实战指南

2026/8/12 22:30:17

1. 项目概述:为什么我们需要NVM? 如果你在Linux环境下,特别是Ubuntu系统上折腾过Node.js,大概率遇到过版本管理的麻烦。今天想用Node 18跑一个老项目,明天新项目又要求Node 20,来回卸载安装,不…

GitHub Models退役后,如何选择模型托管方案与迁移实践

GitHub Models退役后,如何选择模型托管方案与迁移实践

2026/8/12 22:30:17

这次我们来看一个对开发者社区影响不小的变动:GitHub Models 正式退役。这不是某个具体的 AI 模型,而是 GitHub 平台上一个曾经用于托管和分享机器学习模型的功能模块。它的下线,意味着开发者需要重新审视模型托管、版本管理和协作分发的现有…

Node.js版本管理终极指南:使用Gradle Node Plugin控制项目运行时环境

Node.js版本管理终极指南:使用Gradle Node Plugin控制项目运行时环境

2026/8/12 22:30:17

Node.js版本管理终极指南:使用Gradle Node Plugin控制项目运行时环境 【免费下载链接】gradle-node-plugin Gradle plugin for integrating NodeJS in your build. :rocket: 项目地址: https://gitcode.com/gh_mirrors/gra/gradle-node-plugin Gradle Node P…

华为MetaERP Oracle EBS R12 AR 新建收款方式(Receipt Method)完整落地配置核心概念厘清Receipt Class(收款分类):定义收款整体业务流程(手工录入

华为MetaERP Oracle EBS R12 AR 新建收款方式(Receipt Method)完整落地配置核心概念厘清Receipt Class(收款分类):定义收款整体业务流程(手工录入

2026/8/12 22:30:17

Oracle EBS R12 AR 新建收款方式(Receipt Method)完整落地配置 核心概念厘清 Receipt Class(收款分类):定义收款整体业务流程(手工录入 / 自动收款、核销方式、是否需要托收、清账模式)&#…

中文语义搜索如何突破传统限制?BGE轻量级向量嵌入模型实战指南

中文语义搜索如何突破传统限制?BGE轻量级向量嵌入模型实战指南

2026/8/12 22:20:17

中文语义搜索如何突破传统限制?BGE轻量级向量嵌入模型实战指南 【免费下载链接】bge-small-zh-v1.5 项目地址: https://ai.gitcode.com/hf_mirrors/zhouhui/bge-small-zh-v1.5 在当今信息爆炸的时代,你是否曾为寻找特定中文内容而烦恼&#xff1…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/12 7:11:29

比较好的亚太EMBA核心差异先看什么?对于希望兼顾工作与系统管理能力提升的亚太区高管而言,筛选匹配度高的EMBA项目时,师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/11 8:44:43

备考海外游学的亚洲EMBA面试,核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备,避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料,却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/11 15:57:54

比较好的国内EMBA核心差异体现在哪些方面?比较好的国内EMBA的核心长期价值,很大程度上依托于校友网络的连接质量与资源生态的活跃度,这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息,从课程、师…

告别模组冲突!5步掌握《神界:原罪2》模组管理的终极秘诀

告别模组冲突!5步掌握《神界:原罪2》模组管理的终极秘诀

2026/8/12 9:39:37

告别模组冲突!5步掌握《神界:原罪2》模组管理的终极秘诀 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager 你是否曾经为《…

如何用Charge Limiter延长MacBook电池寿命:终极保护指南

如何用Charge Limiter延长MacBook电池寿命:终极保护指南

2026/8/12 9:39:37

如何用Charge Limiter延长MacBook电池寿命:终极保护指南 【免费下载链接】charge-limiter macOS app to set battery charge limit for Intel MacBooks 项目地址: https://gitcode.com/gh_mirrors/ch/charge-limiter 还在为MacBook电池健康度下降而烦恼吗&am…

推三返一模式5.0版本系统开发

推三返一模式5.0版本系统开发

2026/8/12 9:39:37

推三返一模式5.0版本系统开发要点编辑:araolin(私域邦网络土土哥)模式核心逻辑 推三返一是一种促销或分销机制,用户推荐三人完成特定行为(如购买、注册),推荐人可获得返利或奖励。5.0版本通常在…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/9 13:42:46

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…