static全局变量和普通全局变量区别?static局部变量和普通局部变量区别?static函数和普通函数区别
来源:互联网 发布:js添加属性checked 编辑:程序博客网 时间:2024/05/12 05:55
几者的区别从三个方面考虑:
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局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static 全局变量与普通的全局变量的区别/static局部变量和普通局部变量的区别/static函数与普通函数的区别[转]
- static全局变量与普通的全局变量的区别/static局部变量和普通局部变量的区别/static函数与普通函数的区别
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量的区别/static局部变量和普通局部变量的区别/static函数与普通函数的区别
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- linux 下 配置jenkins 与 github 触发构建-陈超允
- 关于近期爬虫学习的总结
- 快速幂板子
- 如何在Popwindow弹出后自动打开输入框
- Shadow removal using bilateral filtering
- static全局变量和普通全局变量区别?static局部变量和普通局部变量区别?static函数和普通函数区别
- 【LEDE】树莓派上玩LEDE终极指南-97-自动挂载sdX(U盘、移动硬盘等)
- Where is the Marble? UVA
- MonggoDB In Action-更新、原子操作与删除(Part1)
- Bigdata Development Java_Study_09(文件,io流)
- muduo源码学习(16)-EventLoop简介
- HDU
- HTML
- 数据结构与算法常见编程题-中缀转后缀