初始化

✍ dations ◷ 2025-12-09 01:23:34 #计算机编程

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

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

相关

  • 认识逻辑认识逻辑是关心与知识有关的推理的模态逻辑子领域。(认识这个词的希腊语是 Episteme)。它应用于哲学、计算机科学、人工智能和其他领域。认识逻辑的基本模态算子通常写为 K,
  • 七月革命法国七月革命(法语:Révolution de Juillet;英语:July Revolution),是1830年欧洲的革命浪潮的序曲,因为波旁王室的专制统治令经历过法国大革命的法国人民难以忍受,以致法人群起反抗
  • 楠梓加工出口区加工出口区楠梓园区,旧称楠梓加工出口区,位于台湾高雄市楠梓区,成立于1969年。加工区内有日月光半导体、楠梓电子、华泰电子、国巨、万宝至马达、台弟工业等公司设厂,通用验证(SG
  • 情绪商数异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 杀戮一代《杀戮一代》(英语:Generation Kill)是一部由美国HBO电视网制作的电视连续短剧。该剧改编自《滚石》杂志随军记者埃文·莱特(Evan Wright)所撰写的同名小说,一共有七集,于2008年7月
  • 2008年澳洲儿童裸照风波澳大利亚儿童裸照风波是指2008年5月起澳大利亚牵起的儿童裸照争议,事件中一位母亲替当时六岁的女儿拍下裸照,5年后在澳大利亚一场艺术摄影展中展出,照片以艺术手法展示女童裸体
  • 大鸟丽大鸟れい,日本女演员,前宝冢歌剧团花组主演娘役。大阪府池田市出身。身高161公分。目前所属于ACT JPエンターテイメント株式会社。 秋田露子(1925年退团) · · 初代春日花子(19
  • 德国联邦铁路V162型柴油机车德国联邦铁路V162型柴油机车(德语:DB-Baureihe V 162,自1968年起改称217型)是德国联邦铁路的一款液力传动(德语:Strömungsgetriebe)柴油机车型号。它是在V160型机车的基础上发展而
  • Notes of School Idol Days 〜Curtain Call〜‘Notes of School Idol Days 〜Curtain Call〜’是动画电影“LoveLive! 学园偶像电影”的原声音乐集,在2015年8月5日由Lantis发售。收录了“LoveLive! 学园偶像电影”中使用
  • Native ClientGoogle Native Client(缩写为NaCl),是一个由谷歌所发起的开放源代码计划,采用BSD许可证。它采用沙盒技术,让Intel x86、ARM或MIPS子集的机器代码直接在沙盒上运行。它能够从浏览