初始化

✍ dations ◷ 2025-11-29 09:35:12 #计算机编程

初始化(英语:Initialization)在计算机编程领域中指为数据对象或变量赋初值的做法,如何初始化则取决于所用的程序语言以及所要初始化的对象的存储类型等属性。用于进行初始化的程序结构则称为初始化器或初始化列表。初始化和变量声明是明显有区别的,而且初始化也先于变量声明进行,但两者在实践中仍常被混淆。

初始化可以在编译时通过静态嵌入值来实现,也可以在运行时进行分配。进行初始化的代码部分称为“初始化代码”,但这部分代码可能还包含其他的一次性使用函数(例如打开文件)。将存储单元设为16进制0的做法也称作“清除”,这一般在机器代码级用异或指令的方式实现(指令的两个操作数必须为相同的变量),因为这不需要额外的内存访问。

在C/C99/C++中,初始化器是声明器的可选部分,它由一个'='以及其后的一个表达式(或含有多个以','隔开的带圆括号表达式的单一列表)所组成。后面这一列表有时也被称为“初始化(器)列表”(initializer list)或”初始化列表”(initialization list),不过initializer list也是C++中用于初始化类或结构中的元素的保留字。

一个包含初始化的声明则通常被称为定义。根据C++标准规定,定义是声明的一种;具体来说,声明只需为函数或数据对象指定类型即可,而定义则还必须为其赋初值。所以“声明和定义”的提法严格来说是不准确的,但这种说法仍被广为采用。

一个类/结构的构造函数可以在定义中于构造函数体前包含一个初始化列表,用以给类/结构的元素赋初值。例如如下程序段:

  struct int_complex {    int re, im;    int_complex() : re(0), im(0) { }  };

这里的" : re(0), im(0)"就是初始化列表。

有时“初始化列表”这个术语也用来指数组或结构初始化器中的表达式表。

在C++0x标准中也以模板的形式提供了一个更强力的初始化表的概念,即为std:initializer_list。

在程序里,数据初始化也可能在没有由明确的语法来实现的情况下进行。例如说,如果一个静态变量在没有初始化(即未指定初值)的情况下被声明,则:

相关

  • 伊马替尼伊马替尼(INN:Imatinib;商品名Glivec,原称STI571,是诺华公司研发时的编号)是由瑞士诺华公司研制销售,治疗慢性骨髓性白血病,胃肠道基质肿瘤等癌症的第一代/旧一代靶向药物,格列卫(中文
  • 沉降沉降又称沉积、沉淀,是悬浮液的粒子下沉积聚的过程。原因可以是地心吸力、离心力或电磁力。在地理学,沉降通常是侵蚀作用的相反,亦即沉积物迁移的最终结果;过程包括跃移。不同大
  • 马里奥·卡佩奇马里奥·卡佩奇(英语:Mario Capecchi,1937年10月6日-),生于意大利的美国分子遗传学家,也是2007年诺贝尔生理学或医学奖得主之一。马里奥·卡佩奇目前是美国犹他大学医学院人类遗传
  • 金手指网路奖在1999年成立的金手指网络广告奖,也称作金手指网络奖,是华文界的第一个网络大奖,主要目的是鼓励网络世界的多元创意。金手指网络广告奖一开始,是由中时电子报、PC Home Online、
  • 纤恙螨纤恙螨(学名:Leptotrombidium deliense),俗称沙蚤,是一种恙螨科的品种,属于寄螨总目的恙螨目恙螨科钩恙螨属。它们主要在浓密的灌木丛植被生活。纤恙螨是恙虫病的载体,其唾液带有恙
  • 捷克斯洛伐克社会主义共和国捷克斯洛伐克社会主义共和国(Československá socialistická republika,缩写为ČSSR)是捷克斯洛伐克历史上的一个社会主义政权,存在于1960年-1990年。1969年起实行联邦制,由捷克
  • 韩国宪法外交 · 南北统一 · 阳光政策 · 行政区划 · 人权(朝鲜语:대한민국의 인권)政治主题《大韩民国宪法》(朝鲜语:대한민국 헌법/大韓民國憲法 Daehanminguk Heonbeop)(英文:Con
  • 美国高尔夫公开赛美国高尔夫球公开赛(United States Open Championship,简称U.S. Open及美国公开赛)是每年一度的高尔夫球四大满贯赛事之一(另外三项是英国公开赛、美国名人赛、美国职业高尔夫球
  • 六方晶系六方晶系(英语:hexagonal crystal system),有一个6次对称轴或者6次倒转轴,该轴是晶体的直立结晶轴C轴。另外三个水平结晶轴正端互成120°夹角。轴角α=β=90°,γ=120°,轴单位a=b
  • 硫酸钚(III)硫酸钚(III)是一种具有强放射性的无机化合物,化学式为Pu2(SO4)3,存在无水物和水合物。可以和钾、铊(I)形成复盐(KPu(SO4)2·4H2O和TlPu(SO4)2·4H2O)。