学过C与java在学习C++流之后的基本概念后得心应手。这篇就记录一些我没有注意过得点。
- 无符号数越界后会转换成一个巨大正值
- 初始化与赋值不同。
eg:
列表初始化{0}
long double id=3.1414587;
int a{id},b={id}//错误。转换未执行
Int c{id},d=id.//正确,但会丢失部分值(如小数部分,数值较大的整数部分)。
- 定义与声明的区别。
为了实现分离式编译
。eg:
extern int i;//声明一个i而非定义
int i//声明并定义一个i
包含显示初始化的声明成为定义。如果加入extern后添加初始值就不是声明而是定义。
extern dobule pi=3.1415926//定义
函数体中如果尝试初始化一个由extern关键词标记的变量,将引发错误。
变量只能被定义一次,但可以多次声明
java中的声明和定义区别也有是否建立存储空间这个概念。