初始化

✍ dations ◷ 2025-04-11 23:22:24 #计算机编程

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

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

相关

  • 文化心理学文化心理学(英语:Cultural psychology)是对文化如何反映和塑造其成员的心理过程的研究。文化心理学的主要原则是,思想和文化是不可分割的,相互构成的,即人们受到文化的影响,文化也
  • 中华民国总统府总统府是中华民国总统、副总统的幕僚机关,专责处理与总统、副总统有关的行政事务;成立于1948年5月20日,其机关法人前身为国民政府。1948年5月20日,中华民国行宪后首任总统蒋中正
  • 母岛母岛(日语:母島/ははじま Haha-jima),是日本东京都所属小笠原群岛中的一个岛屿,在小笠原群岛中面积为第二大。该岛面积20.21km²,人口450人(2009年)。该岛位于父岛以南50公里。母岛
  • 河东区河东区是中国山东省临沂市所辖的一个市辖区。河东区辖12个乡镇,分别为重沟镇、汤头镇(合并了原属沂南县的葛沟镇,但在省民政厅备案依然是河东区葛沟镇)、相公镇、八湖镇、芝麻墩
  • 洛阳伽蓝记《洛阳伽蓝记》是一部集历史、地理、佛教、文学于一身的名著,在《四库全书》将其列入史部地理类,简称《伽蓝记》,为北魏人杨衒之所撰,成书于东魏孝静帝时。书中历数北魏洛阳城的
  • 九节坂九节坂(韩语:구절판)是古代是韩国宫廷料理中的前菜,也可以指盛放该料理的容器。9种食物放至在有9格的八边形攒盒的传统韩国料理,九节坂中间一格一般放置薄饼,周围环绕的8个格按五
  • 经济学原理经济学原理(principles of economics)是经济学基础的知识,主要分为微观经济学和宏观经济学两个部分。在微观经济学中,主要讲的是价格理论,有关市场中生产者和消费者的个体市场行
  • 沸水反应堆沸水反应堆(英语:boiling water reactor, BWR)是一种用来发电的轻水反应堆。沸水反应堆是第二常见的核能发电反应堆型式,在五十年代中期由爱达荷国家实验室(Idaho National Labor
  • 吴迦乐吴迦乐(1990年10月31日-),台湾女演员。曾在台北内湖贩卖自行调理的罐装咖啡,很多人闻香而来,因此称她“豆香妹”。2014年加入《廉政英雄》饰演女警官“方筱莉”,亮眼表现打开知名度
  • 巨狮鬣兽属巨狮鬣兽(学名:,意思为“来自非洲的巨狮”)为已灭绝的肉齿目硕鬣兽科哺乳动物,生存于中新世早期的肯亚,模式标本发现于地质年代 23 百万年前的沉积物中。它们体重估计可达 1,500千