C语言 变量的作用域

今天 我们来说变量的作用域和存储类型

每种事物 都有自己作用的范围限制 例如 汽车只能在路上跑 轮船只能在海洋 飞机只能通行于天空
函数的参数 也只有在函数被调用过程中分配内存资源 函数执行结束 空间也会被立即释放
这也说明了 行参变量只有在函数内才有效 离开了该函数 就不能再使用了

我们将这种变量的作用范围 称为变量的作用域
只有在该范围内定义的变量 才是有意义的

根据作用域不同 C语言的变量可划分为 全局变量和局部变量

局部变量
是在一个函数 或 一个语句块内部定义的变量
它的作用域 只作用于 该函数或代码块中
在这里插入图片描述
只有在声明变量的 函数 或 代码块中 才能使用局部变量 不然就会拿不到

使用局部变量 应该注意以下几点
main0)主函数中定义的局部变量,只能在maim0)内起作用,其它函数不能使用。
函数定义的形参属于被调用函数的局部变量,只在所定义的函数中使用,其他函数不能使用。实参则是属于主调函数的局部变量。
不同的函数可以使用相同的局部变量名,它们分配不同的存储空间,代表不同的对象,不会发生冲突。

全局变量
全局变量通常用来在函数之间传递数据,使多个函数共亨同一变量。
全局变量的作用域是从该变量的定义点处到整个文件结束为止。
全局变量可以被本文件中多个函数共用
如果全局变量定义在一个文件的开始处,则在整个文件范围内都可以使用它。

在这里插入图片描述
我们在外部定义了 x y 以及 i j
它们都是全局变量 而 b c 是 只能在 F1函数 声明位置后 才能使用的 m n 则是 在 main 声明位置后才能使用的

还有就是 函数只有在声明后 才能使用 就比如 你在 x 还没声明时 就用x 依旧取不到 因为代码是从上至下执行的 必须先声明 再调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/9227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】项目自动化构建工具make/makefile的简单使用

使用步骤 1) 编写 创建 makefile 文件 vim makefile用 vim 打开名为 makefile 的文件,存在该文件则打开编辑,不存在则创建并打开.在 makefile 文件中编写需要编译的文件 test:test.cppg -o test test.cpp第一行: 冒号左侧为编译后的可执行文件名,可以随便取. 冒号右侧为依赖…

封装一个可以最小化和展开的弹窗组件

gl-dialog 大概思路: 在弹窗组件内部引入gl-dialog-collapse,这个组件主要用于存储已经被最小化的弹窗(基础数据) 弹窗内部的数据如何在父组件拿到是通过作用域插槽来实现的 gl-dialog接收一个tempData这个数据会在内部被记录下来…

salmon使用体验

文章目录 salmon转录本定量brief模式一:fastq作为输入文件需要特别注意得地方 模式二: bam文件作为输入 salmon转录本定量 brief 第一点是,通常说的转录组分析其中有一项是转录本定量,这是一个很trick的说话,说成定量…

代码随想录算法训练营第四十二天| 01背包问题(二维、一维)、416.分割等和子集

系列文章目录 目录 系列文章目录动态规划:01背包理论基础①二维数组②一维数组(滚动数组) 416. 分割等和子集①回溯法(超时)②动态规划(01背包)未剪枝版剪枝版 动态规划:01背包理论基…

基于Vue3与ElementUI Plus酷企秀可视化设计器中的创新应用

一、引言 随着科技的快速发展,前端技术已经从简单的网页呈现进化到了复杂的数据可视化、互动体验和跨平台应用的构建。酷企秀可视化设计器作为一个集成了多种前端技术的创新平台,不仅为企业提供了全方位的数字化展示解决方案,还在多个行业领…

Java实现NFS文件上传、下载和读取功能的工具类

Java实现NFS文件上传、下载和读取功能的工具类 引言:代码示例一、准备工作二、工具类设计与核心方法三、异常处理与性能优化四、总结 引言: NFS(Network File System)广泛应用于分布式环境的情况下,这里介绍使用Java工…

SRC上分秘诀+实战挖掘+挖洞技巧+新手上路+详细讲解

SRC马上到来 可能有些好兄弟们还没有头绪 只会做一些靶场 并没有什么实战经验 所以这篇文章给大家分享一下我挖洞2个月的经验分享 适合新手上路 如何找站? 谷歌搜索 谷歌搜索 谷歌搜索 SQL注入XSS所有漏洞 inurl:.php?idxx 公司inurl:.asp?idxx 公司inurl:.jsp?…

【考研数学】强化《660》和《880》先做哪个?

880和660一般在强化阶段做 这两本习题各自的特点是: 660题是专门训练客观题的,难度较大,对于基础知识点的考察比较深入,如果你的基础不好,去做660题很有可能被打击到,这个时候不要担心,很正常&a…

「AIGC」Agent AI智能体的未来:技术、伦理与经济的交汇点

Agent AI智能体,作为人工智能领域的前沿技术,正逐渐渗透到社会的各个层面。随着技术的不断进步,Agent AI智能体在提高效率、促进创新、甚至重塑社会结构方面展现出巨大潜力。然而,这也带来了一系列挑战,包括技术发展、…

cf240-B-Mashmokh and ACM DP

https://codeforces.com/contest/414/problem/B 题意: 在[1,n]范围内 构造出一个长度为k的数组 使得a[i1]%a[i]0 求出数组的个数%1e97 思考: 在一开始,会去想这是一道数学题,似乎得出某个式子便可以得出结果,因此就开始一个一个的去构造尝试,当构造了几个样例后,也许会发现…

Mysql基础篇(一)Mysql概述

目录 基本概念 数据库(DataBase,DB) 数据库的定义 数据库的分类 数据库管理系统(DataBase Management System,DBMS) SQL(Structured Query Language) Mysql Mysql数据模型 下载安装Mysql 基本概念 数据库(DataBase,DB) 数据库的定义 按照数据结构来组织、存储和管理数…

Springboot整合Minio,2024版教程

Springboot整合Minio,2024版教程 介绍安装方式代码pomymlconfigMinioService 推荐文章 介绍 CSDN里面找资料真的是垃圾堆里刨食吃。优质作者和内容非常少,最近还出现了评论下方打广告的,粉丝上w,文章内容质量主打一个抄袭&#xf…

java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条

今天遇到一个问题 系统线上问题,经常出现这样的问题,刚重启系统时不报错了,可是运行一段时间又会出现。sql已经写了limit 1,mybatis的debug日志也返回total为1,可是却报错返回了1805条数据 乍一看,感觉太不…

《21天学通C++》(第十四章) 宏和模板介绍(2)

相较于宏&#xff0c;C更推荐使用模板编程&#xff0c;因为它们提供了更好的类型安全、更清晰的语法和更易于调试的代码 1.模板函数 语法 template <typename T> void function(T param) {// 函数体&#xff0c;使用T作为类型参数 }例子 #include <iostream> us…

汽车之家,如何在“以旧换新”浪潮中大展拳脚?

北京车展刚刚落幕&#xff0c;两重利好正主导汽车市场持续升温&#xff1a;新能源渗透率首破50%&#xff0c;以及以旧换新详细政策进入落地期。 图源&#xff1a;中国政府网 在政策的有力指引下&#xff0c;汽车产业链的各个环节正经历着一场深刻的“连锁反应”。在以旧换新的…

Python运维之多线程!!

一、多线程 二、多线程编程之threading模块 2.1、使用threading进行多线程操作有两种方法&#xff1a; 三、多线程同步之Lock&#xff08;互斥锁&#xff09; 四、多线程同步之Semaphore&#xff08;信号量&#xff09; 五、多线程同步之Condition 六、多线程同步之Event…

CSS和JavaScript

CSS 在html中引入CSS 我们需要先在该项目先建立css文件 html引入CSS,在<head></head>中添加<link>标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" co…

mac 本地使用docker 运行es,kibana

1.下载 m芯片一些版本不支持.踩过坑.翻看官网才知道只有部分镜像支持m芯片 https://hub.docker.com/添加链接描述 docker pull elasticsearch:7.17.21 docker pull kibana:7.17.21镜像已经下载下来了 2.创建文件映射-挂载 /Users/lin/dev/dockerMsg 其中lin是自己的用户名…

关于线程池,它的扩展问题你知道吗?(自己总结)

专门想一下为什么线程池不用Excutors&#xff0c;之前的印象是错的&#xff0c;居然还拿来面试里讲&#xff0c;惭愧&#xff0c;这里暂时整理俩小问题&#xff0c;其他的后续可能会更新。。 线程池是创建的越大越好嘛 #线程池创建的越大越好吗 Tip&#xff1a;2024-04-10 更…

本地搭建hydra服务用go以验证oidc流程

目录 1、docker搭建hydra&#xff0c;环境配置&#xff1a; 2、搭建完成后服务调用&#xff1a; 2.1保证服务正常启动&#xff1a; 2.2 通过postman调用&#xff0c;获取client_id&#xff1a; 2.3 通过client_id&#xff0c;实现oauth2/auth调用 3. 通过go语言实现oidc验…