C++入门第一天

1.C++命名空间的学习以及使用,嵌套命名空间的使用。

2.C++对struct结构体的强化,不需要再加struct。

3.C++ 实用性增强,变量可以在需要的几乎任何地方进行使用定义。

4.C++三目运算符可以作为左值了,而C不能,原因在前者是返回变量(内存)后者是返回了值而已。体现出C++编译器的智能化,当三目运算符作为左值时候,会自动取地址,作为右值时候会赋值给左边的变量。

5.C++编译器会自动做优化需要的变量register,但是不能取被修饰过的register地址。而C需要手工请求register,编译器可以拒绝,此外可以取被register修饰的变量的地址,当然此时变量失去了register的优化特性。

6.(1)const在C与C++中的区别:前者是假的常量,会分配内存,可以使用指针间接修改const修饰的变量,后者是真正的常量,不能修改被const修饰过的变量,存在符号表,此外如果有取地址的操作,才回分配内存给被const修饰的变量,否则不会分配内存,分配内存的行为是在编译器编译期间。

   (2)const与#define的区别:前者提供定义域和类型检查并且在编译期间使用。后者是预处理期间使用,并且不提供定义域和类型检查,只是等效于粘贴。

7.引用&,等效于 (类型)*const a,地址不可变。初始化后就不可变。本质就是变量(内存)的别名,其他的就是内存的问题了。既可以当左值,也可以当右值,也可以当函数的引用返回,也可以当函数的参数引用。用法非常多。但是只要抓住它就是内存的别名,那么就很好理解并且正确无误地使用。

猜你喜欢

转载自blog.csdn.net/wisdom712/article/details/80494048