1.若指针保存0值,表明它不指向任何对象。未初始化的指针是无效的,知道该指针赋值后,才可以使用。
2.单目运算符 *比++的优先级高。
3.typedef 说明一种新类型名,来替代已有类型名。在编译时处理,有类型检查。
typedef string *pstring
const pstring cstr;
const修改的是psting类型,这个类型是一个指针类型,所以修饰的是一个指针,所以cstr是一个const指针。这句话是定义cstr是一个指向string类型的const指针。
注意可以变成 const(string *)cstr; cosnt修饰的是string *类型的变量,cstr是常量
和cosnt string *cstr cosnt修饰的是string类型 *cstr是常量。
4.void * 的指针类型,它可以保存任何类型对象的地址。但不允许使用void*指针操作它所指的对象。
5.函数指针 *p 注意两边的括号是必须要加上 (*p)
6.可以使用typedef简化函数指针的定义。
7.在引用函数名但又没有调用该函数时,函数名被将自动解释为指向函数的指针。
函数指针只能通过同类型的函数或函数指针或0值常量表达式进行初始化或赋值。
8.函数的形参可以是指向函数的指针。
9.函数可以返回指向函数指针。
阅读函数指针声明的最佳方法是从声明的名字开始由里向外解释。
10.c++语言允许使用函数指针指向重载的函数。
11.c++中规定一旦定义了引用,就必须把它跟一个变量绑定起来,并且不能修改这个绑定。
引用不能为空,当引用被创建时,它必须被初始化。而指针可以为空,可以在任何使用的时候初始化。
不能有null引用。
sizeof (引用)是所指向变量的大小。sizefo(指针)是指针本身的大小。
如果返回动态分配的对象和内存,必须使用指针,引用可能引起内存泄露。
12.cosnt引用是指向const对象的引用,当引用的对象时const对象时,引用也必须是const的 。
13,对于const类型的成员变量和引用类型的成员变量,都必须在构造函数初始化列表中进行初始化。
凡是有引用类型的数据成员的类,必须定义构造函数。
14.public派生对象可以初始化基类类型的引用。数组可以有引用,但没有引用数组。
15.野指针是指向不可用内存的指针。任何指针变量在创建时,不会自动成为NULL指针,其默认值是随机的,此时的指针就是野指针。
16.注意指针cpp++ 这个会改变cpp的指向。
和cpp[-2] 不一样,这个不改变cpp的指向。