static全局变量和普通全局变量区别?static局部变量和普通局部变量区别?static函数和普通函数区别
几者的区别从三个方面考虑:
1初始化时间
2 作用域
3 分配内存空间
static全局变量和普通全局变量区别:
区别:
1.static全局变量编译是初始化,在main()函数之前初始化并且仅初始化一次;
2.static全局变量限定了作用范围,仅在定义该变量的源文件中有效,由于静态全局变量的作用域局限于一个源文件内,即文件作用域,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。全局变量可以跨越多个源文件有效,当然,其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量
相同点:都是全局作用域,静态存储方式
static局部变量和普通局部变量区别:
区别
1.static局部变量只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在。普通局部变量,只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。
2.静态局部变量在静态存储区分配空间,局部变量在栈里分配空间。
相同点:两者都只有局部作用域
static函数和普通函数区别:
区别
1.普通函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。好处:其他文件中可以定义相同名字的函数,不会发生冲突。
2.普通函数在C++类中编译后带一个隐藏的this参数,而static函数不带。
相同的
全局变量、静态全局变量以及静态局部变量都会被放在程序的静态数据存储区(全局可见)中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它们与堆变量、堆变量的区别。
而局部变量在栈里分配空间
从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。因此static这个说明符在不同的地方所起的作用是不同的。应予以注意。
static全局变量和普通全局变量区别?static局部变量和普通局部变量区别?static函数和普通函数区别相关推荐
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?...
答案:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式. 这两者在存储方式上并无不同.这两者的区别虽在于非静态全 ...
- static全局变量与普通全局变量区别?static局部变量与普通局部变量区别?static函数与普通函数区别?
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构 ...
- C语言中static全局变量与普通的全局变量区别
下面是中兴通讯2012校招笔试题的一道问答题: 1. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量. 全局变量本身就是静 ...
- c语言中register是局部变量吗,auto、static、register及全局变量和局部变量
auto ???? auto称为自动变量 如果函数不做其他说明的话 均为自动变量 static ???? static称为静态变量.根据变量的类型可以分为静态局部变量和静态全局变量. ?1. 静态局部 ...
- 全局变量、静态全局变量、静态局部变量和局部变量的区别
static和const都是C++中比较麻烦的东西,只要是太容易混淆他们的作用,之前对static做过点总结,但是不全面,还有很多小的错误,现在整理一下: 变量可以分为:全局变量.静态全局变量.静态局 ...
- static全局变量与普通的全局变量
一.程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分: 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆 ...
- php局部变量和全局变量的区别,PHP局部变量、静态变量、全局变量和超全局变量的使用和区别...
首先,PHP 中从变量的范围上可以分为 4 类,分别是静态变量.局部变量.全局变量和超全局变量. PHP 局部变量与全局变量 在 PHP 中中全局变量和局部变量的定义是和 C 语言类似的.在函数外定义 ...
- C++全局变量与静态全局变量的异同(static与非static)
文章目录 生命周期与作用域 静态变量的声明--通过案例理解 案例:局部声明静态变量 案例:全局声明静态变量 问题探讨: 1. static全局变量与普通的全局变量有什么区别 ? 2. static局部 ...
- 全局变量、静态全局变量、静态局部变量和普通局部变量的区别
按存储区域分:全局变量.静态全局变量和静态局部变量都存放在内存的全局数据区,局部变量存放在内存的栈区 按作用域分: 1.全局变量在整个工程文件内都有效: 2.静态全局变量只在定义它的文件内有效: 3. ...
最新文章
- R语言ggplot2可视化条形图可视化控制底部和x轴之间没有空格实战:即条形图的底部直接和坐标轴连接
- iOS Automated Tests with UIAutomation
- mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
- 新手学linux之-----------memroy.c
- win7旗舰版系统关闭自动更新功能教程
- 11月 北京 | 高性能之GPU CUDA 3天密集式进阶课程
- python keystone_keystone命令与client接口学习
- 工作展望简短_元旦祝福语大全简短
- [PTA]7-116 计算圆周率(c语言)(学习记录)
- STM32 HAL库 结构
- 51单片机矩阵按键模块
- SYN FLOOD WINCAP
- rabbitmq-channel断网后没有断开情况记录
- java poi替换word_利用POI 技术动态替换word模板内容
- 使用curl批量下载图片
- 谈谈我对SEO快排现象的观察及其背后原理的分析
- ELF文件格式, ELF文件是什么,里面包含什么内容
- Linux更换镜像源
- python3.7魔塔游戏_用python写一个魔塔50层怪物伤害计算器
- php 模板 头部 尾部,网站头部尾部模板