C-041.局部变量跟全局变量的区别
2015-12-04 16:27
232 查看
局部变量:
概念:定义函数内部变量
定义格式:变量类型 变量名称;
作用域:从定义那一行开始到所在代码块结束
生命周期:从代码执行到定义的哪一行开始,到其所在的代码的结束为止
特点:相同的代码块中不可以有同名的变量
不同的代码块中可以有同名的变量,内部的变量会覆盖外部定义的变量
全局变量:
概念:定义在函数外部变量
定义:变量类型 变量名称 = 值;
声明:变量类型 变量名称;
特点:1、不可以重复定义,但可以重复声明
2、局部变量可以与全局变量同名,在局部变量的作用域范围内,那么局部变量会覆盖全局变量
3、如果没有定义仅有声明,系统自动给它定义并将其初始化为0
作用域:从定义的那一行开始,直到文件结束
生命周期:从程序启动开始,直到程序退出才消亡
#include <stdio.h>
int num;//只声明,系统默认初始化为0,这点跟局部变量不同
int main(int argc, const char * argv[]) {
printf("num = %d\n",num);//打印0 是全局变量
int num = 20; //定义了局部变量1 = 20
printf("num = %d\n",num);//打印 20 覆盖了全局变量
{
num = 40; //把局部变量1的值改成40
int num = 10;//定义局部变量2 = 10
printf("num = %d\n",num);//打印 10
num = 30;//把局部变量2改成30
}//局部变量2被系统回收
printf("num = %d\n",num);//打印 40 这里是局部变量1
return 0;
}
概念:定义函数内部变量
定义格式:变量类型 变量名称;
作用域:从定义那一行开始到所在代码块结束
生命周期:从代码执行到定义的哪一行开始,到其所在的代码的结束为止
特点:相同的代码块中不可以有同名的变量
不同的代码块中可以有同名的变量,内部的变量会覆盖外部定义的变量
全局变量:
概念:定义在函数外部变量
定义:变量类型 变量名称 = 值;
声明:变量类型 变量名称;
特点:1、不可以重复定义,但可以重复声明
2、局部变量可以与全局变量同名,在局部变量的作用域范围内,那么局部变量会覆盖全局变量
3、如果没有定义仅有声明,系统自动给它定义并将其初始化为0
作用域:从定义的那一行开始,直到文件结束
生命周期:从程序启动开始,直到程序退出才消亡
#include <stdio.h>
int num;//只声明,系统默认初始化为0,这点跟局部变量不同
int main(int argc, const char * argv[]) {
printf("num = %d\n",num);//打印0 是全局变量
int num = 20; //定义了局部变量1 = 20
printf("num = %d\n",num);//打印 20 覆盖了全局变量
{
num = 40; //把局部变量1的值改成40
int num = 10;//定义局部变量2 = 10
printf("num = %d\n",num);//打印 10
num = 30;//把局部变量2改成30
}//局部变量2被系统回收
printf("num = %d\n",num);//打印 40 这里是局部变量1
return 0;
}
相关文章推荐
- Object-C : Block的实现方式
- 2.4G/5G频段WLAN的模式、带宽、协商速率、加密方式
- 跨域的小小总结:js跨域及跨域的几种解决方法
- IOS版Unity的Google Analytics(分析)插件集成Admob管理库教程
- 通达OA服务器意外断电后数据库容易损坏的解决方案
- 黑马程序员--字节流
- Oracle中的部分查询
- 开始记录学习经历
- ios测试基础五: ios手机流量消耗
- 如何安装本地jar包到maven库
- 五、图标更换
- 自定义圆角imageview方案2
- Builder design pattern in java
- 【Java基础】Java中的持久属性集Properties
- WinForm与WPF下跨线程调用控件
- iOS开发-多线程-线程间通讯
- AC 与 GLPI的MAC地址自动同步脚本 expect mail ver4.0【最新】
- Mysql几种索引类型的区别及适用情况(转载)
- Dynamics CRM 为Visual Studio 2015安装CRM Developer Toolkit
- 需要学习的blog