CPrimerPlus读书笔记.docxVIP

  • 3
  • 0
  • 约2.54千字
  • 约 3页
  • 2017-06-10 发布于北京
  • 举报
C++ Primer Plus 预备知识 C++的编程方式:C语言方式、面向对象方式(数据与算法的封装)、泛型编程方式(算法独立于类型)。 C语言的编程理念:结构化编程、过程式编程、自顶向下的设计。 ANSI C、KR C、C99、C++98、C++2003、C++11 编程范式: 声明式编程(Declarative Programming):注重逻辑,让计算机明白做什么。包含:SQL、正则表达式、函数式编程等。 函数式编程(Functional programming):将算法全部视为函数,并避免状态和变量的使用。基本结构为λ表达式。 指令式编程(Imperative Programming):注重过程、让计算机明白怎么做。因计算机本身就是在执行指令,故而这种方式更加直观。 结构化编程(Structured Programming):采用子程序、代码块(block structures)、for、while、do while循环、if else语句等结构,来取代传统的 goto语句结构。 过程式编程(Procedural Programming):从属于结构化编程,采用调用过程、函数等来控制程序流程。 面向对象编程(Object-oriented Programming):与过程式编程相对,以对象为程序的基本组成(对象可以是类、原型、或自动机)。 开始学习C++ 没有扩展名的是新式C++的头文件,才可使用namespace。 c开头无扩展名的是转换为C++后的C头文件。 引用声明、定义声明、定义 cin和cout是istream和ostream的预定义对象。 处理数据 整型: C++11新增long long类型与unsigned long long类型。 short 至少16位;int不小于short;long至少32位并不小于int;long long至少64位并不小于long。 climits(limits.h)头文件中定义了各种整型数据类型的上限。 整型立即数的默认存储: 0打头的立即数表示8进制数。 整数立即数默认被存储为int类型,除非立即数指定了类型,或int长度不够。十进制立即数默认不会使用unsigned系列类型,八进制与十六进制会。 字符立即数(’a’、’M’等)有可能被存储为char类型,也可能为int类型(同C一样)。 Unicode字符立即数使用类似转义符的格式:\u后接4位16进制数,或\U后接8位16进制数。Unicode字符立即数可以应用在关键字命名中。 字符、字符串类型: char类型的实现可能有符号也可能没有,用其表示整数时最好显式指定。 wchar_t宽字符类型,定义为可容纳系统支持的???大符号集的整数类型,可能为unsigned short,也可能为int等。L打头的字符立即数或字符串常量会存储为宽字符类型。 C++11新增char16_t与char32_t,分别定义为16位与32位无符号整数,对应的字符立即数和字符串常量用u和U打头。char类型可直接保存UTF-8编码字符,常量用u8打头。 bool型:ANSI/ISO C++引入bool类型(C语言在C99才引入bool宏,非内置类型),0为false、非0为true。bool型立即数类型提升为整型时,true→1、false→0。 const限定符:C语言自C99起引入const限定符,但const常量不能用于定义数组长度。另外,C语言有独特语法:void foo(int a[const])。 浮点型: 浮点立即数,可使用0.0的形式,或52E11的形式(e与E都可,皆以10为底)。 float至少32位;double至少48位并不少于float;long double至少同double一样多。指数至少支持到±37(10为底)。 cfloat(float.h)头文件中定义了各种浮点型数据类型的上限。 浮点型立即数的默认存储: 浮点型立即数默认被存储为double类型,除非立即数指定了类型(f或F指定为float,l或L指定为long double)。 算数运算符: 整数/整数,结果返回整数部分。 负数进行%运算,结果满足:(a/b)*b + a%b = a。 类型转换: 进行算术运算时,小于int型的其他整型变量会被提升为int型或unsigned int型(int、unsigned int类型的计算更快)。 不同类型间进行运算时,只做提升或整型→浮点型。 复合类型 使用其他类型来定义的类型,故而称为复合类型。 数组: 使用{0}来初始化数组的方法,实质上是使用了部分初始化的语法,第0个元素指定为0,其余默认为0。 C++11新增的{ }初始化方式,有以下新语法:可以省略=号;可以为空{ }。但{ }方式,会对隐式的缩窄转换

文档评论(0)

1亿VIP精品文档

相关文档