1.首先是一张巨大的思维导图:
**
2.指针和引用的比较:
**
共同点:引用在底层上实际是有空间的,因为引用是按照指针方式来实现的
不同点:
1.引用在定义时必须初始化,指针不需要
2.引用只能引用一个实体,而指针可以指向任何一个同类型实体
3.没有NULL引用,但是有NULL指针
4.引用自加是给引用的实体加1,指针自加是指针向后偏移一个类型的大小
5.在sizeof中,引用的结果是引用类型的大小,而指针始终是地址空间所占字节数(32位是4个字节)
6.有多级指针,但是没有多级引用
7.访问实体方式不同,指针需要解引用,而引用编译器自己处理
8.引用比指针使用起来相对更安全
3.宏和内联函数的区别:
1.内联函数在运行时可调试,而宏定义不可以;
2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;
3.内联函数可以访问类的成员变量,宏定义则不能;
4.在类中声明同时定义的成员函数,自动转化为内联函数。