工作原因,开始蒸腾C++,看书看不下去,只能用这种边看便吐槽的方式了。不过速度太慢了,不过至少能看下去了。
这一节是符合类型,引用和指针

引用

  1. int &refValue2;这个语句是错误,因为一旦引用初始化了,那么引用就无法再被绑定到其他对象上,所以引用必须初始化。
  2. 引用不是对象,所以不能定义引用的引用
  3. 引用不能用字面值或者常量表达式初始化,我觉得应该是字面值和常量初始化不是对象

指针

  1. 指针只能指向对象,而引用不是对象,所以不能定义指向引用的指针
  2. 如果指针指向一个对象,可以用*来解引用(书上称它为解引用符,但是很容易和引用混淆在一起)
  3. int *p1 = nullptr; int *p2 = 0; int *p3 = NULL;总感觉C++做了很多的妥协,连定义一个空指针都有三种方式,结果定义出来的空指针还是不能访问的,那我定义它干啥?或许只是为了后来来判断该指针是否被赋值吧,那默认空指针不是更靠谱,好吧,函数内不会自动初始化。
  4. if(p1 == p2)指针可以用来表达式中,前提是指针是一个合法指针,否则就会发生不可预计的后果,一本书里,不可预计出现了N次,所谓的不可预计就是说连C++之父也不知道会出现什么,那干嘛要弄出这么恶心的东西出来呢。
  5. void *指针是一种特殊的指针,类似与iOS里面的id类型,为什么说它特殊呢?因为你无法用*直接取它的值,所以它是指针,又没法干指针该干的事。

修饰符

修饰符有*``&,变量的定义包括基本数据类型和一组声明符,而声明符基本上就变量名,而修饰符也属于声明符,用来修饰变量名,修饰完就变成了另外一种类型,出来的类型就被称作复合类型(这名字本身就很歧义),也就是引用,指针。例如:int *p1,int是基本类型,*p1是声明符。

指向指针的引用

int *p;int int *&r = p因为指针是对象,所以定义指针的引用。但是还是少用这个比较好,已我的脑子,看这种代码早晚会疯掉。

部分文字来自《C++ Primer》