cout<<标准输出
cin>>标准输入
定义一个类,是一个抽象概念,不会给你分配内存。
用数据类型定义变量的时候,才会分配内存。
C语言是在实践的过程中逐步完善起来的。
没有深思熟虑的设计过程。
使用时存在很多的“灰色地带”
残留量过多低级语言的特征
直接利用指针进行内存操作。
C语言的目标是高效
最终程序执行效率的高效
C语言和C++并不是对立的竞争关系。
C++ 是C语言的加强,是一种更好的C语言。
C++ 是以C语言的为基础,并且完全兼容C语言的特性
C语言中无法取得register变量的地址
C++中可以.
C++增加了bool类型 bool类型值为true和false,其实就是1或0;
在C语言中表达式的结果放在寄存器里面,表达式的返回值是一个常量数.
在C++中,表达式返回的是变量的本身.
const int *a;//const修饰的指针所指向的内存空间不能被修改
int * const b;//
C语言的宏定义可以卸载 #undef 卸载所以宏定义
#undef a 卸载宏定义a.
在C++中新增加了引用的概念。
引用可以看作一个已定义的变量的别名。
引用语法 Type& name=var;
引用做函数参数(引用做函数参数声明时不进行初始化).
普通引用 必须要初始化,引用做函数参数的时候不需要初始化.
引用的本质
1)引用在C++中的内部实现是一个常量指针
2)C++编译器在编译过程中使用常量指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。
3)从使用的角度,引用会让人误会其只是一个别名,没有自己的存储空间。这是C++为了实用性而做出的细节隐藏。
当实参传给形参引用的时候,只不过是C++编译器帮我们手工取了一个实参地址,传给了形参引用(常量指针)
我们使用引用语法的时候,不去关心编译器引用是怎么做的。
当我们分析奇怪的语法现象的时候,才去考虑C++编译器是怎么做的。
引用的难点
当函数返回值为引用时
1.如果返回栈变量
不能财务其它引用的初始值
不能作为左值使用
2.如果返回的是静态变量或全局变量
可以成为其它引用的初始值
即可以做右值使用,也可以做左值使用.
C++链式编程中,经常用到引用,运算符重载专题.