C++ primer plus读书笔记——第3章 处理数据

第3章 处理数据

1. C++对于变量名称的长度没有限制,ANSI C只保证名称中的前63个字符有意义(前63个字符相同的名称被认为是相同的,即使第64个字符不同)。

 

2. 对类型名(int)使用sizeof运算符时,应将名称放在括号中,但对变量名(n_short)使用该运算符时,括号是可选的。

 

3. int owls = 101; //传统的C语言初始化方式

int wrens(432); //C++增加的初始化方式

 

4. 与int类型不同的是,char在默认情况下既不是没有符号,也不是有符号。是否有符号由C++实现决定。如果char有某种特定的行为对您来说很重要,则可以显示地将类型设置为signed char 或 unsigned char。

5. 在进行国际编程或使用Unicode或ISO10646时,程序需要处理的字符集可能无法用一个8位的字节char表示,可以使用wchar_t。wchar_t是一种整型,具体类型取决于实现,有可能是unsigned short 或 int等。

Cin和cout将输入和输出看作是char流,因此不适于用来处理wchar_t类型。iostream头文件提供了类似的工具wcin和wcout,用于处理wchar_t流。另外,可以通过加上前缀L来指示宽字符常量和宽字符字符串。

   wchar_t bob = L'P';

   wcout << L"tall" << endl;

 

6. 在进行字符串编码时,如果有特定长度和符号特征的类型,将会很有帮助,而类型wchar_t的长度和符号随实现而异。因此C++11增加了类型char16_t和char32_t,两者都是无符号的,前者长16位,后者长32位。C++使用前缀u表示char16_t字符常量和字符串常量,并使用前缀U表示char32_t常量。

7. const比#define好的原因:首先,他能够明确指定类型。其次,可以使用C++的作用域规则将定义限制在特定的函数或文件中。第三,可以将const用于更复杂的类型,如数组和结构。ANSI C的const限定符是从C++借鉴来的。

8. C++的浮点表示法有两种:第一种直接使用标准的小数点,第二种使用E表示法。既可以使用E也可以使用e,指数可以是正数也可以是负数。数字中不能有空格,因此7.2 E6非法。

 

9. 浮点常量

默认情况下,浮点常量为double类型,如果希望常量为float类型,请使用F或f后缀。对于long double类型,可使用l或L后缀。

1.234f    //float常量

2.45E20F  //float常量

2.3453E28 //double常量

2.2L      //long double常量

 

10. (typename) value //c语言强制类型转换

typename (value) //C++强制类型转换,使强制类型就像是函数调用,这样对内置类型的强制类型转换就像是为用户定义的类设计的类型转换。

 

11. C++11新增加了一个工具,auto让编译器能够根据初始值的类型推断变量的类型。

std::vector<double> scores;

std::vector<double>::iterator pv = scores.begin();

C++11允许这样写:

std::vector<double> scores;

auto pv = scores.begin();

posted on 2016-01-06 18:03  lakeone  阅读(290)  评论(0编辑  收藏  举报

导航