c语言中在main外面定义的int变量,C语言中,把变量定义在主函数之外和定义在主函数之内有什么区别...
C语言中,把变量定义在主函数之外和定义在主函数之内有什么区别
答案:7 信息版本:手机版
解决时间 2018-12-14 06:44
已解决
2018-12-13 14:23
C语言中,把变量定义在主函数之外和定义在主函数之内有什么区别
最佳答案
2018-12-13 14:56
在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:
变量的声明有两种情况:
(1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。
(2) 另一种是不需要建立存储空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。
前者是"定义性声明(defining declaration)"或者称为"定义(definition)",而后者是"引用性声明(referncing declaration)"。从广义的角度来讲声明中包含着定义,但是并非所有的声明都是定义,例如:int a它既是声明,同时又是定义。然而对于extern a来讲它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为"定义",而把不需要建立存储空间称之为"声明"。很明显我们在这里指的声明是范围比较窄的,也就是说非定义性质的声明。
例如:在主函数中
int main()
{
extern int A; //这是个声明而不是定义,声明A是一个已经定义了的外部变量
//注意:声明外部变量时可以把变量类型去掉如:extern A;
dosth(); //执行函数
}
int A; //是定义,定义了A为整型的外部变量(全局变量)
外部变量(全局变量)的"定义"与外部变量的"声明"是不相同的,外部变量的定义只能有一次, 它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变 量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在"定义"中进行,而不是在" 声明"中。所谓的"声明",其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是在为了"提前"引用该变量而作的"声明"而已。extern只作 声明,不作定义。
用static来声明一个变量的作用有二:
(1) 对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在
(2) 外部变量用static来声明,则该变量的作用只限于本文件模块
全部回答
1楼
2018-12-13 22:21
100吧.个人感觉.仅供参考.
2楼
2018-12-13 20:50
定义在主函数之外是全局变量啊,无论在函数中是否调用它,它都存在在内存中。main()函数中的属于局部变量,在运行时在分配内存空间。你那个程序 最后值是100啊,因为主函数外的i被隐藏了。
3楼
2018-12-13 20:08
最后肯定是100喽。
变量作用域的问题吧
4楼
2018-12-13 18:41
100呗,定义在函数里面,改变的是函数里面的量,外面的没变,比如你在主函数里执行i=i-1,是主函数里面的i变了,外面的不变
5楼
2018-12-13 17:55
全局变量和局部变量,j=00
6楼
2018-12-13 16:30
最后的值是100.
在函数体之内的i和函数体之外的i是存放在两个内存位置的,在内部能够看到的是内部生存期的。
建议你去看下变量在函数的生存期和内存中的位置,会有更深刻的理解。
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯
c语言中在main外面定义的int变量,C语言中,把变量定义在主函数之外和定义在主函数之内有什么区别...相关推荐
- main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...
PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...
- c语言其他函数调用main函数,C语言中的main函数以及main函数是如何被调用的
main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是: int main(int argc, char *argv[]); 其中argc是命令行参数的个数,ar ...
- c语言中fun和main,功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函 数中由键盘输入n值,并输出运算结果。请编写fun 函数...
功能:编写函数fun求1!+2!+3!+ -- +n!的和,在main函 数中由键盘输入n值,并输出运算结果.请编写fun 函数0 wjkfz2013.04.07浏览271次分享举报 功能:编写函数f ...
- c语言int作用,c语言中int的用法有哪些
c语言中int的用法有哪些 C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同下面小编给大家整理了c语言中int的用法 ...
- c语言中aver是什么意思_嵌入式C语言基础编程—5年程序员给你讲函数,你真的懂函数吗?...
本文主要讲述的内容: 1函数概述 2函数定义的一般形式 3函数的参数和函数的值 3.1形式参数和实际参数 3.2函数的返回值 4函数的调用 4.1函数调用的一般形式 4.2函数调用的方式 4.3被调用 ...
- c语言中extern变量,C语言中的Extern用法
C语言中的Extern用法 (2010-07-28 12:50:39) 标签: 杂谈 分类: 技术 C语言中的Extern用法 网上有很多帖子问C语言中Extern的用法,而且回答的详细程度各尽不同. ...
- 2.3 文 法 和 语 言 的 形 式 定义
2.3 文 法 和 语 言 的 形 式 定义 2.3.1 形式语言 序列的集合称为形式语言.具体地说,每个形式语言都是某个字母表上按某种规则构成的所有符号串的集合,反之,任何一个字母表上符号串的集合均 ...
- c语言中int作用,c语言中int的用法(5页)-原创力文档
第 第 PAGE 1 页 共 NUMPAGES 1 页 c语言中int的用法 C/C++编程语言中,int表示整型变量,是一种数据类型,下面小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. ...
- java中jdk1.8,做forEach,需要把外面的变量赋值如int,long,boolean,需要外面定义原子类型的Atomic类型,AtomicBoolean,AtomicInteger
2022-01-05 星期三 1414 by:enAn java中jdk1.8,做forEach,需要把外面的变量赋值如int,long,boolean,需要外面定义原子类型的Atomic,如:Ato ...
最新文章
- Oracle中的within,Oracle函数 --聚合函数中的语法within group
- restful-api接口的设计规范介绍
- caffe训练中断后如何承接上次继续训练
- 用unison来同步你的远程文件夹 - Fwolf's Blog
- php 运行外部程序_PHP在linux上执行外部命令的方法
- Headers and client library minor version mismatch.
- 全国Python科研应用专题实操培训班
- redis和zookeeper安装教程并配置开机自启
- python selenium手动输入验证码_Python Selenium Cookie 绕过验证码实现登录
- 什么是CSR以及CSR的作用和生成方法
- linux操作系统安装自定义分区,CentOS linux操作系统安装图文教程
- 小白学python(爬虫知识1(大体框架)
- 关于电视盒子/XBOX/手机使用kodi访问局域网下的windows电脑文件/电影
- 个人住房抵押贷款流程让你的贷款更轻松
- Oracle开发实战学习
- tf 加速训练,节省内存 fit_generator
- java中怎么定义true或false_java 中的true、false、null有何不同
- linux下使用Navicat连接MySQL
- [量化-012]缠论之五--均线系统
- springboot的学习记录