A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2的狠正经 中级黑马   /  2014-5-7 18:47  /  3133 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自己总结了一下三点, 不知道对不对,还有漏掉的, 大神指教啊

1,static在函数内定义局部静态变量,仅有本函数可以调用,而且放在静态存储区。
2,全局变量就不用定义static了,肯定在静态存储区,所有函数都可以调用,二者的作用域不同。
3,如果全局变量使用static修饰,那么只是本文件可见。

点评

如果全局变量使用static修饰,不是只有本文件可见,而是只能在本文件能使用。可能你表达的意思就是这个意思0 0  发表于 2014-5-8 09:19

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

9 个回复

倒序浏览
:D好 学习了 static应该还是很有用的 局部作用域的全局变量
回复 使用道具 举报
我感觉楼主说的是extern 和static 的区别:
首先是对变量来说,
extern int a 仅是声明一个外部变量;
static int a  定义一个内部变量 。
static 用来修饰局部变量:
1* 可以延长函数的生命周期,知道程序结束才会被销毁
2* 不会改变变量的作用域.
3* 所有的函数都有一个变量b .
static的适用场合:
        ——某个函数调用频率比较高(省去创建 删除创建删除反复的麻烦)
        ——函数内部的某个变量的值不变。
其次对函数来说
static 定义一个内部函数,声明一个内部函数。如果省略static,变成默认情况(extern)。
static 定义的属于内部函数不能够被其他文件访问,可以存在同名内部变量在不同的函数中。
extern完整的定义和声明一个外部函数,不能同时存在两个同名字的外部函数,访问冲突。
回复 使用道具 举报
詹绪长 发表于 2014-5-10 12:40
我感觉楼主说的是extern 和static 的区别:
首先是对变量来说,
extern int a 仅是声明一个外部变量;

这是我写的日记给你挑着说了一点。
回复 使用道具 举报
楼上解释的不错
回复 使用道具 举报
不错 ,
学习了
回复 使用道具 举报
詹绪长 发表于 2014-5-10 12:40
我感觉楼主说的是extern 和static 的区别:
首先是对变量来说,
extern int a 仅是声明一个外部变量;

学习了!!!
回复 使用道具 举报
还有看变量的修饰符,public 修饰的话其他类都可以调用,private修饰的话只能在本类中使用
回复 使用道具 举报
静态、全局变量,静态变量属于总个类吧,全局变量只是作用域是在什么时候都能用,不用理解的那么复杂,会用就行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马