C++程序直接在操作系统上运行,而java有JVM虚拟机。
引用本质也是传地址。
- 声明时必须初始化:即给值。
- 引用初始化后,而不能再做其它变量的别名。
- 引用不可以删除,因为引用指向的是一片已经存了值的空间,删除会使得之前的变量丢失。
但是指针可以删除。



auto a = 10.11;
此外,auto转换任何类型变量过来,都不会出现const。
不同类型变量转换会产生中间值,但是相同类型变量赋值不会产生中间值。
int a = 10;
int& b = a;
const int c = 10;
const int& d = c;

+ 语法糖:
1. 【范围for】自动取数组中每个元素,取到的类型一定是数组中元素的类型,auto和arr中确定类型都可以。此外,必须是数组名,不能通过函数参数传入的数组,做范围for。
int arr[] = { 1, 2, 3, 4 ,5 };
for (auto e : arr)
cout << e << endl;
如下,范围for不可以用,参数中的数组名其实成了指针,**范围for必须通过数组名来用。**

同名同参数可以重载,但只有返回值不同不算重载。
重载必须要参数不同,或者不同类型参数顺序不同。
C语言不支持函数重载,C++才支持,因为函数命名规则机制。
优点:
注意:
函数太大或有递归,内联就别用。因为inline是空间换时间。
inline关键字函数会被编译器在视为内联函数,调用处可以展开,但是太大的话,编译器有权不展开。
【补充】:
auto可以自动补全类型。
主要是为了解决名字冲突,当: