初始化

✍ dations ◷ 2025-12-03 21:47:04 #计算机编程

初始化(英语: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。

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

相关

  • 米尔顿·艾瑞克森米尔顿.艾瑞克森(Dr.Milton Hyland Erickson, 1901年12月5日-1980年3月25日)被喻为“现代催眠之父”,是医疗催眠、家庭治疗及短期策略心理治疗(Brief Strategic Psychotherapy)的
  • 约翰·希南约翰·费利克斯·安东尼·塞纳(英语:John Felix Anthony Cena,1977年4月23日-),是一名美国男演员、饶舌歌手及职业摔角选手。受聘于世界摔角娱乐(WWE),同时也是真人实境秀主持人。他
  • 1996年营建署范围高雄都会区,或称大高雄地区、高雄大都会区、大高雄都会区,指高雄市以及屏东县的部分地区组成;在世界人口组织里为世界排名第180大都会区,为台湾第三大都会区,次于台北都会区以及
  • 恩吉利国际机场恩吉利国际机场(法语:Aéroport international de Ndjili,IATA代码:FIH;ICAO代码:FZAA)是一座服务刚果民主共和国首都金沙萨的机场,是该国最大的机场。合瓦博拉航空和温比殿华航空都
  • 满洲里市满洲里市(蒙古语: ᠮᠠᠨᠵᠤᠤᠷᠬᠣᠲᠠ,西里尔字母:Манжуур хот,俄语:Маньчжу́рия),是中华人民共和国内蒙古自治区呼伦贝尔市代管的县级市。1901年(清光绪二
  • 麦克林麦克林(英语:Maclean's)是一本编辑总部设在加拿大多伦多的新闻杂志,主要报道加拿大政治新闻、流行文化和热点话题。《麦克林》杂志于1905年10月由加拿大多伦多的出版商约翰·贝
  • SCHOOL革命!SCHOOL革命!(日语:スクール革命!),日本电视台的校园类娱乐节目。2009年4月5日开播,播出时间为每周日11:45至12:45(JST)。主持人为内村光良,常规嘉宾包括山田凉介、八乙女光、知念侑李
  • 斯特凡·巴拿赫斯特凡·巴拿赫(波兰语:Stefan Banach,1892年3月30日-1945年8月31日),波兰数学家。斯特凡·巴拿赫1892年出生于波兰的克拉科夫,童年时被收养,并在他养父母的家中长大。从1902年到191
  • 白根秀树白根秀树,日本动画编剧。初期出道,主要参加小学馆企划作品。曾隶属于Studioオオルフェ,参与多套黑田洋介系列构成的作品。亦经常被岩崎良明监督钦点参与制作。
  • 大觉山坐标:27°41′43″N 117°11′49″E / 27.69528°N 117.19694°E / 27.69528; 117.19694大觉山位于中国江西省抚州市资溪县境内,武夷山脉西麓,主峰海拔1396米。山上建有大觉寺