C++ Primer学习笔记(一)

第一章 快速入门

1.每个C++程序都包含一个或多个函数,而且必须有一个命名为main。函数由执行函数功能的语句序列组成;

2.main函数是唯一被操作系统显式调用的函数;

3.main函数的形参个数是有限的

4.函数体是函数定义的最后部分,是以花括号开始并以花括号结束的语句块;

5.注释不会增加可执行程序的大小,编译器会忽略所有注释;

6.我们注释的风格是在注释的每一行以星号开始,指明整个范围是多行注释的一部分;

7.我们倾向于吧确定函数边界的花括号自成一行,且缩进复合的输入或输出表达式从而使操作符排列整齐;

8.标准库的头文件用尖括号< >括起来,非标准库的头文件用双引号“ ”括起来;

9.自定义的类、结构、枚举等数据结构放在.h的头文件中,然后main文件include进来; 

 

第一部分基本语言

 

第二章 变量和基本类型

1. wchar_t类型用于扩展字符集,比如汉字和日语,这些字符集中的一些字符不能用单个char表示;

2.在位这一级上,存储器是没有结构和意义的;让存储具有结构的最基本方法是用块处理存储;

3.建议:使用内置算术类型;

4.只有内置类型存在字面值,没有类类型的字面值,也没有任何标准库类型的字面值;

5.没有short类型的字面值常量;

  “A”表示的是一个A和一个空格;而‘A’表示一个A;

6.不可打印字符和特殊字符都用转义字符书写,转义字符都以反斜线符号开始;

7.未定义行为源于编译器不能检测到的程序错误或太麻烦一直无法检测的错误;

8.C++是一门静态类型语言,在编译时会做类型检查;

9.左值可以出现在赋值语句的左边或右边,右值只能出现在的赋值语句的右边;

10.变量是左值,数字字面值是右值;

11.对象就是内存中具有类型的区域;

12.标识符由数字、字母、下划线组成,不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母。有些标识符(在函数外定义的标识符)不能以下划线开头;

13.C++支持两种初始化变量的形式:复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则把初始化式放在括号中;

初始化与赋值的区别;

14.初始化不是复制:初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替;

15.在函数体外定义的变量都初始化成0,在函数体里定义的内置类型变量不进行自动初始化;

16.在一个程序中,变量有且仅有一个定义,但可以声明多次。

17.定义也是声明,可以通过使用extern关键字声明变量名而不定义它。extern声明包括对象名、对象类型和对象类型前的关键字extern,extern声明不是定义,也不能分配存储空间;

18.只有当extern声明位于函数外部时才可以含有初始化式,因为已初始化的extern声明被当作是定义,所以该变量任何随后的定义都是错误的,随后含有初始化式的extern声明也是错误的;

19.用来区分名字不同意义得上下文称为作用域,作用域是程序的一段区域;

20. 一般来说,名字从其声明点开始直到其声明所在的作用域结束处都是可见的;

21.局部变量的定义会屏蔽相同名字的全局变量定义;

22.在全局作用域声明的const变量是定义该对象的文件的局部变量。此变量只存在于那个文件中,不被其他文件访问;

const的变量默认为extern,可以再别的文件中extern声明然后使用;如果要使const变量能够在别的文件使用,必须使用extern const 声明并初始化变量;

23.不能定义引用类型的引用,但可以定义任何其他类型的应用;

24.引用必须用于与该引用同类型的对象初始化;

25.作用在引用上的所有操作事实上都是作用在该引用绑定的对象上;

26.初始化是指明引用指向哪个对象的唯一方法,当引用初始化后,只要该引用存在,它将绑定到初始化时指向的对象。不可能将引用绑定到另一个对象;

27.将普通的应用绑定到const对象是不合法的;

28.非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的类型的对象或绑定到右值;

29.默认地,第一个枚举成员赋值为0,后面的每个枚举成员赋的值比前面的大1;

30.常量表达式是编译器在编译时就能够计算出结果的整型表达式;

31.不能改变枚举成员的值;

32.枚举成员的对象初始化或赋值,只能通过其枚举成员或同意枚举类型的其他对象来进行;

33.因为头文件包含在多个源文件中,所以不应该含有变量和函数的定义。

33.为了防止重复include,在.h文件,开头添加测试#ifndef FILENAME_H  #define FILENAME_H

中间为.h文件内容,结尾为#endif

自己定义的头文件用“”,标准的用<>

34.C++是静态类型语言,变量和函数的使用必须提前声明,变量可有声明多次,只能定义一次,重复定义会覆盖

猜你喜欢

转载自blog.csdn.net/qq_34935373/article/details/90300456
今日推荐