当局部变量遇上全局变量——extern及花括号用法举例
请阅读以下代码并说出它的输出结果。
#include <stdio.h> int val = ; int foo()
{
int val = ;
{
extern int val;
printf("val_foo = %d\n", val);
}
return val;
} int main()
{
int val = ;
printf("val_main1 = %d\n", val);
val = foo();
printf("val_main2 = %d\n", val);
system("pause");
return val;
}
在Dev-C++下编译后运行,输出结果如下:
val_main1 = 0
val_foo = 9
val_main2 = 2
请按任意键继续. . .
结论:
1. 当局部变量和全局变量名称相同,如果未作外部变量声明,在代码块中局部变量起作用。
2. 当使用extern声明为外部变量,需要用花括号使声明和引用位于同一个代码块,此时全局变量才起作用。
当局部变量遇上全局变量——extern及花括号用法举例的更多相关文章
- 静态局部变量、静态全局变量、extern全局变量、自动变量 札记
		
静态局部变量 静态局部变量. 从称呼上我们可以看出,静态局部变量首先是一个局部变量,因此其只在定义它的函数内有效,冠以静态的头衔后,其生存期就被延长了,不会随着函数的返回而被撤销.我们可以这样来理解: ...
 - IOS总结 静变量static、全局变量extern、局部变量、实例变量
		
1.静态变量 static 什么是静态变量:从面向对象的角度触发,当需要一个数据对象为整类而非某个对象服务,同时有力求不破坏类的封装性,既要求此成员隐藏在类的内部,有要求对外不可见的时候,就可以使用s ...
 - 【转载】python format遇上花括号{}
		
在format string中, 大括号已经被format占用,想要使用大括号本身,该怎么办? 以下转载自这里. ============ 分割线 ============ 使用format时,字符串 ...
 - C++ 全局变量、局部变量、静态全局变量、静态局部变量的区别
		
全局变量.局部变量.静态全局变量.静态局部变量的区别 C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作 ...
 - C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)
		
1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局 ...
 - 初识genymotion安装遇上的VirtualBox问题
		
想必做过Android开发的都讨厌那慢如蜗牛的 eclipse原生Android模拟器吧! 光是启动这个模拟器都得花上两三分钟,慢慢的用起来手机来调试,但那毕竟不是长久之计,也确实不方便,后来知道了g ...
 - 当创业遇上O2O,新一批死亡名单,看完震惊了!
		
当创业遇上O2O,故事就开始了,总投入1.6亿.半年开7家便利店.会员猛增至10万……2015半年过去后,很多故事在后面变成了一场创业“事故”,是模式错误还是烧钱过度?这些项目的失败能给国内创业者带来 ...
 - MVC遇上bootstrap后的ajax表单模型验证
		
MVC遇上bootstrap后的ajax表单验证 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了, ...
 - 敏捷遇上UML-需求分析及软件设计最佳实践(郑州站 2014-6-7)
		
邀请函: 尊敬的阁下:我们将在郑州为您奉献高端知识大餐,当敏捷遇上UML,会发生怎样的化学作用呢?首席专家张老师将会为您分享需求分析及软件设计方面的最佳实践,帮助您掌握敏捷.UML及两者相结合的实 ...
 
随机推荐
- Maven依赖(转)
			
相同依赖级别,先加入的先依赖不同依赖级别,级别短的先依赖 version-->SNAPSHOTxxx-里程碑-->SNAPSHOT,alpha,beta,Release(RC),GA()s ...
 - perl处理含有中文字符的json编码
			
例子:1. 有php的 json函数生成的中文串 [root@tts177:/tmp]$/opt/php/bin/php -r 'echo json_encode(Array("a" ...
 - vb eof详解
			
源地址:https://zhidao.baidu.com/question/87122186.html?qbl=relate_question_1&word=eof%20sql&ski ...
 - Intellisense in Visual Studio for Microsoft Dynamics CRM 2016
			
Intellisense in Visual Studio for Microsoft Dynamics CRM 2016 posted by dynamicsnick on may 18, 2016 ...
 - javascript delete方法
			
学习delete可以参考下面两个博客,写的都很好,本文大部分参考与以下两个博客 http://www.cnblogs.com/windows7/archive/2010/03/28/1698387.h ...
 - JqGrid单选
			
You have to do some more stuff: 1. Set multiboxonly to true and multiselect to true 2. Define the ev ...
 - mssqlserver 批量插入示例
			
public bool DoQuestionSqlBulkCopy(DataTable dtDoQuestion, string DoQuestionName, ...
 - (转).NET代码混淆实践
			
今天突然对反编译.混淆感兴趣,在网上查了一些资料,文章大部分内容来源http://www.cnblogs.com/hsapphire/archive/2010/11/21/1883514.html. ...
 - Windows 2008 IIS7.0安装FTP教程 IIS7.5 配置多用户FTP
			
一. 安装IIS.右键[我的电脑],选择[管理]打开. 选择[角色],选择[添加角色]打开. 二. 配置DOS.输入: CACLS "%Syste ...
 - 有关OpenCV1.0中GUI命令的几个函数学习总结
			
1.修改窗口背景色或者光标形状 在OpenCV1.0版本利用函数int cvNamedWindow( const char* name, int flags )初始化创建一个窗口后,窗口的背景色是灰色 ...