今天边看 C++ Primer 边复习关于C++的内容,由于大一的时候刚开始学软件设计的是C,而后下学期在软件设计二课上学面向对象才转到C++,因此发现对于C++的一些基本问题认识不够。curl
指针是对象,而引用不是,因此有指向指针的指针而没有引用的引用,也没有指向引用的指针,指针要么指向一个对象,要么是空指针,要么是未定义指针,由于指针是对象,因此适用于对象的概念如做用域、初始化都适用于指针。url
空指针不指向任何对象设计
int *ptr = nullptr; int *ptr = 0; int *ptr = NULL;
第一种定义方式是 C++11 中新加进去的,第三种中的 NULL 是一个常量预处理变量(宏),喜欢第一种,由于有更纯的类型的概念在里面。指针
What exactly is nullptr?
C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,仍是用 p=NULL 好?为何?code
初始化不是赋值。若是不进行初始化,变量定义出如今不一样的位置,产生的效果是不同的。C++11 中为每个对象都加入了初始化列表的初始化方式,但要注意的是下面第三行这种状况是编译不过的:对象
double fromDouble = { 66.98 }; int toInt = fromDouble; // int toIntWrong{ fromDouble };
一样是prefer用初始化列表的方式进行初始化。作用域
Why is list initialization (using curly braces) better than the alternatives?get
这个概念以前一直都是模模糊糊的,理解 literal 英文就行了。it