C语言中定义变量位置
C标准的问题
C89规定,在任何执行语句之前,在块的开头声明所有局部变量。
即应该如下:定义变量只能在最开始,scanf等执行语句之前
int N = 0;double sum = 0;scanf("%d",&N);
在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
如下:
int N = 0;scanf("%d",&N);double sum = 0;
另一方面,编译器不同也不同,gcc编译器有很多扩展的功能,可完美支持C99标准。
关于变量的定义:
以花括号{}给包围起来的代码段称为block,只要在block开始的地方定义变量就不会错;
变量作用域和生存期:
该变量的作用域和生存期(除了static限定)只在该block里,且该变量可以屏蔽block外的变量;
譬如在block外已经有一个变量名为a = 1的int变量,在block里允许定义一个同名的变量int a = 2,但在block里试着用printf打印的话,会发现printf("%d", a)结果是2.这就叫做屏蔽外面的变量!
本文为摘抄笔记,原创请查看
https://wenku.baidu.com/view/d3adc6d03186bceb19e8bb6a.html
C语言中定义变量位置相关推荐
- c语言通过定义变量实现对,C语言中定义变量“#X”,X##, ##X 和“##X##”用意
关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号.比如下面代码中的宏: 1. ...
- c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法
网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...
- c语言 引用定义变量,如何在c语言中定义及引用全局变量?
如何在c语言中定义及引用全局变量? 答案:5 信息版本:手机版 解决时间 2019-10-03 10:30 已解决 2019-10-02 15:19 如何在c语言中定义及引用全局变量? 最佳答案 2 ...
- 在c语言中定义了一个指针变量后,C语言的指针变量
C语言的指针变量 在C语言中,变量是固定范围的存储空间,它存储的是赋给他的值, 比如: int a = ; /* 这里是定义一个整型变量a,并把12这个值存储在a的地址空间上 这个地址空间是系统随机分 ...
- 为什么c语言要定义变量,C语言为什么要规定对所用到的变量要“先定义,后使用”...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int a=10; 以上一句话对变量a进行了声明,定义以及初始化 extern int a; 以上一句话仅仅对变量a进行了声明,将a的链接属性设置为ext ...
- c语言根据变量作用域不同分为,C语言中不同变量的访问方式
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? C语言中的变量大致可以分为全局变量,局部变量,堆变量和静态局部变量,这些不同的变量存储在不同的位置,有不同的生命周期.一 ...
- 在c语言中 使用变量的要求,关于C语言中变量的探讨
摘 要: 在所有的计算机高级语言中,都存在着变量这样一个重要的概念.变量是计算机高级语言程序的重要成分之一.与其他语言中的变量相比,C语言中的变量所包含的内容更为丰富,包括变量的定义.数据类型.变量数 ...
- r语言 分类变量 虚拟变量_R语言中的变量
r语言 分类变量 虚拟变量 R语言| 变数 (R Language | Variables) In the previous tutorial, we have come across the bas ...
- 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...
如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...
最新文章
- Python3中对Dict的内存优化
- 如何快速融入团队(二)
- 网站的安全证书存在安全问题,无继续浏览按钮
- Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)...
- fatal: The current branch dev has no upstream branch. To push the current branch and set the remote
- 发现在创建云服务器ecs实例的磁盘快照时_【New Feature】阿里云快照服务技术解析...
- 用python读取股票价格_Python读取文件并给出股票价格
- C# 中? 和 ?? 在变量中的使用
- GitHub For Beginners: Don’t Get Scared, Get Started
- 基于vue的验证码组件
- MQ_ActiveMQ环境部署+C#推送和接收消息
- C#之四十二 C# 读写文本文件乱码解决方案
- AI CC2017安装后,安装目录里找不到amtlib.dll文件的问题
- 仅1年,电子劳动合同从“可以采用”实现“普及应用”
- 研发管理工程师笔试题
- 除去工作赚到第一桶金10W+,我都做了哪些事儿?
- c语言 power 头文件,pow - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
- 债居时代总结与读后感——房贷如何影响经济[美]阿蒂夫·迈恩 [美]阿米尔·苏非著
- 建模配置 | Revit建模到底需要什么配置
- 信号完整性问题及其解决方法
热门文章
- python爬取知乎标题_python爬虫 爬取知乎文章标题及评论
- chrome只能装在c盘吗_电脑硬盘使用与文件整理入门——逃离C盘?
- 小程序picker标题_微信小程序-自定义picker选择器
- 【Java从入门到天黑|05】JavaSE入门之面向对象(下)
- 掌握 React 与 React Native
- easyswoole数据库连接池_如何在 Swoole 中优雅的实现 MySQL 连接池
- python购物车实现的功能是什么_Python3实现购物车功能
- 关于nodejs中npm命令没有反应的解决方法
- 关于ES6的Promise
- 在vue中使用SockJS实现webSocket通信