初始化

✍ dations ◷ 2025-11-22 10:17:05 #计算机编程

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

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

相关

  • 说文解字《说文解字》简称《说文》,是中国东汉时期由学者许慎编著的一部文字工具书,全书共分540个(俄语:Список ключей Шовэнь цзецзы)部首,收字9,353个,另有“重
  • 2006年联合国秘书长选举科菲·安南潘基文2006年联合国秘书长选举旨在选出一名新任联合国秘书长,以接替任期将于2006年12月31日结束第二届任期的时任秘书长科菲·安南。此次选举共有七名候选人,来自韩
  • 巴陶氏症候群巴陶氏症候群(Patau syndrome),又称13-三体症候群,染色体三倍体症之一,少见,患者多在出生后一年内死亡。13-三体症候群早在1657年便由丹麦医学家托马斯·巴托林发现,但其染色体性质
  • 阿尔弗雷德·布莱洛克阿尔弗雷德·布莱洛克(英语:Alfred Blalock,1899年4月5日-1964年9月15日),美国外科医生,其在休克方面的研究影响深远,同时他还是布莱洛克-陶西格分流术的发明人之一。布莱洛克-陶西格
  • 玛莱区玛莱区(法语:Le Marais)是法国巴黎的一个区域,横跨巴黎右岸的第三区和第四区,传统的布尔乔亚区域。19世纪末和20世纪上半叶,蔷薇路(Rue des Rosiers)周边地区成为许多来自东欧犹太
  • 社会无政府主义社会无政府主义(Social anarchism或Socialist anarchism),也称无政府社会主义(Anarcho-socialism或Anarchist socialism)、社群无政府主义(Communitarian anarchism)(可与自由意志
  • 阿布杜尔·拉赫曼汗阿布杜尔·拉赫曼汗(1844年-1901年),为阿富汗1826年建立之巴拉克查依王朝的在位君主之一。他本为塔什库尔干总督,后因为与雅库布汗争夺阿富汗帝位失利,走避他国。1879年,接受英国相
  • 扬·科曼扬·科曼(罗马尼亚语:Ion Coman;1926年3月25日-),罗马尼亚共产党中央政治执行委员会委员、中央书记处书记,罗马尼亚武装部队总参谋长、国防部长,上将。1926年,出生于罗马尼亚蒙特尼亚
  • 明缅战争明缅战争是16世纪中至17世纪初明朝与缅甸东吁王朝之间爆发的一场战争,战争以原属明朝云南的孟养、木邦等土司归属缅甸而告终。1381年(洪武十四年),朱元璋派大将沐英出击云南,击败
  • 硫酸钕铵硫酸钕铵是一种无机化合物,化学式为NH4Nd(SO4)2,700℃时受热分解产生Nd2(SO4)3。硫酸钕铵可以从硫酸钕和硫酸铵的稀硫酸溶液中,按化学计量比结晶得到。