社区
C语言
帖子详情
static的作用
niehuawen
2012-08-22 10:32:20
//test c.cpp
#include<stdio.h>
#include "test.h"
void main()
{
print();
printf("%d",num);
}
//test.h
static int num=5; //第1处
static void print() //第2初
{
static int num=1;
printf("%d\n",num);
printf("%d\n",::num);
}
上述2处static的作用分别是什么?
...全文
212
16
打赏
收藏
static的作用
//test c.cpp #include #include "test.h" void main() { print(); printf("%d",num); } //test.h static int num=5; //第1处 static void print() //第2初 { static int num=1; printf("%d\n",num); printf("%d\n",::num); } 上述2处static的作用分别是什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wizard_tiger
2012-08-24
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
第一处,防止全局变量被其他文件引用
第二处,防止函数被其他文件引用
[/Quote]
++
xiezhunben
2012-08-23
打赏
举报
回复
static 修饰数据为静态变量,所谓静态变量就是从开始定义起直到程序结束它都是存在内存中的,但是他还是一个变量,所以他还是有作用域!楼主定义了一个全局的static int num = 5; 这里定义的一个全局变量而在函数中有定义了一个 static int num = 1; 这个是局部变量,在函数中直接用num由于那么就是使用的 = 1 的这个num
加上全局域操作符::访问的就是全局变量num = 5。
franzhong
2012-08-23
打赏
举报
回复
除了存静态区,主要限定作用域
AnYidan
2012-08-23
打赏
举报
回复
这些名字只在本文件内可见
lin51616780
2012-08-23
打赏
举报
回复
发现LZ一个问题 不要用#include 处理*.cpp文件 很不专业 然后作用其实是把文件的内容写入另一个文件 汗
proorck6
2012-08-23
打赏
举报
回复
一个是静态变量,一个是静态函数。
dhdahai
2012-08-23
打赏
举报
回复
第一处,防止
全局变量
被其他文件引用
第二处,防止
函数
被其他文件引用
didijiji
2012-08-23
打赏
举报
回复
static用在外部是主要是防止其他文件引用。
static用在函数内部是只能初始化一次,并且函数调用结束后不会立即销毁。
ies_sweet
2012-08-23
打赏
举报
回复
第一个是全局的,静态区存储
第2个是局部的,也是静态区存储
不过因为2个变量名字冲突,局部的这个在局部将全局的屏蔽了
这是一个关于命名空间的问题吧
niceguy01
2012-08-23
打赏
举报
回复
你好笨啊,连static都不会他的作用如果是函数的话 ,别的文件就不能访问了,不管你另外的文件有没有实用extern,要是用在了变量上面的话 ,那么这个变量同样在其他的文件上无法使用了,并且这个变量仅仅只能被初始化一次哦
要是用在了类上面的你懂得,如果用在了成员变量上面的话,我相信你也懂得,如果把它放在了字符串“”之间他就是个abc而已。
不知道我讲明白了没有,反正我是懂了,你不懂我也没有法子
赵4老师
2012-08-23
打赏
举报
回复
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可。
BYD123
2012-08-23
打赏
举报
回复
好吧啰嗦一下:
static关键字作用:
1)变量,如static int a,表示a是一个静态的变量,在程序编译时就确定初值为0,并放在未初始化的数据段里,在可执行文件里不占磁盘空间;如果是static int a = 1;//(非零值),a的数据放在已初始化的数据段里,并且在可执行文件里占用4字节的磁盘空间。
在程序运行时:a的内存空间是在栈里,如果它是全局的,任何函数可以访问,如果是局部的,只有定义它的函数
可以访问。不管哪种情形,a的作用域都只在本文件内。
2)函数,如static void func(...),表示func只能在本文件内使用,拒绝其它地方extern void func(...)后,再使用。
KingWolfOfSky
2012-08-22
打赏
举报
回复
static可以出现在函数或变量的声明中。
在函数定义中,它只用于指定函数名不被导出到链接器。
在函数声明中,它表示被声明的函数稍后将在这个文件中按照static存储类别进行定义。
在数据声明中,它总是表示一个不导出到链接器的定义声明。
声明为这个存储类别的变量具有静态范围(和auto所指定的局部范围正好相反)
羽飞
2012-08-22
打赏
举报
回复
函数中的静态变量不会因为函数返回而失效
羽飞
2012-08-22
打赏
举报
回复
static在cpp文件中可以防止变量或函数被其它文件引用
Gloveing
2012-08-22
打赏
举报
回复
在这里显得没啥用啊
转行做IT-第10章 常用类-String、
static
、Array等
本课程为想转行学IT的朋友量身定制,快速入门,轻松上手,让非计算机专业的同学能快速学会Java编程. 课程会从计算机的基本组成原理讲起,门槛低,实用性强,让大家轻松掌握一项编程技能。后期课程全部更新完毕后还会帮大家...
c语言中
static
作用
c语言中
static
作用
1.
static
修饰局部变量。2.
static
修饰全局变量。3.
static
修饰函数。
【C语言】函数定义时前加
static
作用
C语言中函数定义时前加
static
作用
1.
作用
函数中加“
static
”的含义不是指存储方式,而是指对函数的
作用
域仅局限于本文件。 2.好处 使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,...
static
作用
(修饰函数、局部变量、全局变量)
C语言:
static
作用
(修饰函数、局部变量、全局变量) 一、
static
全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以
static
就构成了静态的全局变量。 全局变量本身就是静态存储方式, ...
Java中
static
的
作用
详解_java中
static
作用
详解
static
表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态
static
代码块,但是Java语言中没有全局变量的概念。被
static
修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章