C++ primer 第二章笔记

来源:互联网 发布:域名备案成功访问不了 编辑:程序博客网 时间:2024/05/02 17:54

第二章
(30)表示整数、字符和布尔值的算术类型合称为整型。
(32)整数的赋值。
(42)初始化不是赋值。初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替。
      在初始化类类型对象时,复制初始化和直接初始化之间的差别是很微妙的。直接初始化语法更加灵活且效率更高。
      对于内置类型来说,复制初始化和直接初始化几乎没有差别。对于类类型的对象来说,有些初始化仅能用直接初始化来完成。
(44)内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化成0,在函数体里定义的内置类型变量不进行自动初始化。除了用作赋值操作符的左操作数,未初始化变量用作任何其他用途都是没有定义的。
      同一定义语句中的不同变量应分别初始化。
(46)变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。
      声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。不定义变量的声明包括对象名、对象类型和对象类型前地关键字extern:(extern只是说明变量定义在程序的其他地方,程序中变量可以声明多次,但是只能定义一次)
      extern int i;//声明但不是定义
      int i;//声明且定义
(49)常量在定义时必须被初始化。
(51)当引用初始化后,只要该引用存在,它就保持绑定到初始化时的对象,不能将引用绑定到另一个对象。必须在定义引用的时候进行初始化。
(52)将普通的引用绑定到const对象是不合法的。const引用可以初始化为不同类型的对象或者初始化为右值。同样的初始化对于非const对象却是不合法的,而且会导致编译错误。
(59)头文件用于声明而不是用于定义。头文件中不应该含有变量或函数的定义。但是有三个例外,头文件可以定义类、值在编译时就已知道德const对象和inline函数。

 

原创粉丝点击