社区
C语言
帖子详情
谁能准确的解释一下什么是静态初始化?
freesmile
2001-09-30 01:58:06
是不是需要执行期求值的初始化就是静态初始化?
非静态变量可不可以有静态初始化?
...全文
245
16
打赏
收藏
谁能准确的解释一下什么是静态初始化?
是不是需要执行期求值的初始化就是静态初始化? 非静态变量可不可以有静态初始化?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longlong3
2001-10-09
打赏
举报
回复
thank you
招RD和QA
2001-10-08
打赏
举报
回复
http://www.csdn.net/develop/article/10/10828.shtm
Only_I
2001-10-08
打赏
举报
回复
.
haijiang_jin
2001-10-08
打赏
举报
回复
gz!!
nebula
2001-10-01
打赏
举报
回复
静态初始化是指编译时初始化,与之对应的是动态初始化,是运行时初始化;不要望文生义
Only_I
2001-09-30
打赏
举报
回复
gz
Only_I
2001-09-30
打赏
举报
回复
up
Only_I
2001-09-30
打赏
举报
回复
up
招RD和QA
2001-09-30
打赏
举报
回复
在C++中,这个限制已经取消了,
你可以这样写。
int i = rand(); // 有意思吧。
这样做是为了适应类的ctor,因为类的成员只能在ctor中初始化,无法在编译时求值。
magicblue
2001-09-30
打赏
举报
回复
yes,after the cfront 2.0
freesmile
2001-09-30
打赏
举报
回复
to Montaque
hehe,这个我知道,我是问他的初始化
Montaque
2001-09-30
打赏
举报
回复
比如在main()外面的全局变量!
freesmile
2001-09-30
打赏
举报
回复
"在C中,静态初始化只能为常量" c++中好像不一定非得是常量,比如:
extern int y;
int x=y+1;
main()
{
//...
}
是不是啊?
tjm
2001-09-30
打赏
举报
回复
学习
招RD和QA
2001-09-30
打赏
举报
回复
所有的全局变量,静态变量都会拥有静态初始化。
静态初始化是相对于运行时来说,指的是编译时即可确定值。
在C中,静态初始化只能为常量,或没有初值。
如:
// global, 有初值。
int i = 0;
// global,无初值。
int j;
已经初始化的变量放在.data节中,未初始化的置于.bss节中,如果是常量则放于.rdata节中,
在C++中,因为出现了class,所以静态初始化的概念有所扩展,所有全局变量,静态变量都认为是已经初始化的变量。
// global, value is 0
int i;
放于.data节中,
至于class object,
sometype obj;
编译时其值为0,运行时通过ctor赋值。
fsb_12345
2001-09-30
打赏
举报
回复
静态变量的初始化
2小时候学会SpringBoot整合Thymeleaf生成
静态
页面
大家能想到什么办法来解决这个问题? 首先我们能想到的就是缓存技术,比如之前学习过的Redis。不过Redis适合数据规模比较小的情况。假如数据量比较大,例如我们的商品详情页。每个页面如果10kb,100万商品,就是10...
静态
成员变量一定要
初始化
吗?
我们知道C++类的
静态
成员变量是需要
初始化
的,但为什么要
初始化
呢。 其实这句话“
静态
成员变量是需要
初始化
的”是有一定问题的,应该说“
静态
成员变量需要定义”才是
准确
的,而不是
初始化
。 两者的区别在于:
初始化
是赋一个初始值,而定义是分配内存。
静态
成员变量在类中仅仅是声明,没有定义,所以要在...
关于c++ 的
静态
成员变量为什么一定要
初始化
我们知道C++类的
静态
成员变量是需要
初始化
的,但为什么要
初始化
呢。 其实这句话“
静态
成员变量是需要
初始化
的”是有一定问题的,应该说“
静态
成员变量需要定义”才是
准确
的,而不是
初始化
。 两者的区别在于:
初始化
是赋一个初始值,而定义是分配内存。
静态
成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给
静态
成员变量分配内存。 可以通过以下几个例子更形象的说明这个问题: //t
C++类的
静态
成员变量一定要
初始化
(分配内存)
文章转载自https://my.oschina.net/u/1537391/blog/219432 我们知道C++类的
静态
成员变量是需要
初始化
的,但为什么要
初始化
呢。其实这句话“
静态
成员变量是需要
初始化
的”是有一定问题的,应该说“
静态
成员变量需要定义”才是
准确
的,而不是
初始化
。两者的区别在于:
初始化
是赋一个初始值,而定义是分配内存。
静态
成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际...
C++中类中
静态
变量在类外
初始化
我们知道C++类的
静态
成员变量是需要
初始化
的,但为什么要
初始化
呢。 其实这句话“
静态
成员变量是需要
初始化
的”是有一定问题的,应该说“
静态
成员变量需要定义”才是
准确
的,而不是
初始化
。 两者的区别在于:
初始化
是赋一个初始值,而定义是分配内存。
静态
成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给
静态
成员变量分配内存。 可以通过以下几个例子更形象的说明这个问题 //test.cpp #include <stdio.h> class A { public:
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章