C++中让人费解的概念

来源:互联网 发布:淘宝网货到付款十字绣 编辑:程序博客网 时间:2024/05/23 19:45

初始化///赋值:初始化不是赋值,初始化是指在创建变量时赋予其一个初始值;赋值的含义是把对象的当前值檫除,而以一个新值代替。

直接初始化///拷贝初始化

未定义:是指此时程序可能继续工作,可能崩溃,也可能生成垃圾数据。

默认初始化:创建变量时没有指定初值,则变量被默认初始化,此时变量被赋予默认值,默认值由变量类型与变量定义的位置决定;如果是内置类型变量,定义与任何函数之外则被初始化为0,否则不被初始化(未定义的,调用会发生错误)。

申明///定义:申明使名字为程序所知(需加extern)我们能给由extern标记的变量赋予一个初始值,这就抵消了extern的作用(变成了定义),并且函数内部不能对extern标记的变量初始化;定义负责创建与名字关联的实体;变量只能被定义一次,但是可以被多次申明。

常量表达式:是指值不会改变并且在编译过程中就能得到计算结果。显然,字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。

constexpr:编译器将验证变量的值是不是常量表达式。申明为cosntexpr的变量一定是一个常量,且必需由常量表达式初始化。



1 0
原创粉丝点击