C++ Primer Plus笔记: 2023.06.16 AND 2023.06.17

1.iostream头文件的最新版本提供了作用相似的工具——wcin和wcout,可用于处理wchar_t流。另外,可以通过加上前缀L来指示宽字符常量和宽字符串。下面的例子:

wchar_t bob = L'P' ;
wcout << L"tall" << endl ;

2.任何数字值或指针值都可以隐式转换(即不用显式强制转换)为bool值。任何非零值都被转化为true,而零被转化为false。包括下面这种情况:

bool start = -100 ;
bool stop = 0 ;
cout << start << " " << stop << endl;

运行结果:

1 0

3.C++有一种更好的处理符号常量的方法,就是使用const关键字来修改变量声明和初始化。常量被初始化后,其值就被固定了,编译器将不允许再修改该常量的值,关键字const叫做限定符,因为它限定了声明的含义,给这样的变量强行赋值或作运算会导致这样的后果:

con.cpp:7:9: error: assignment of read-only variable ‘Months’
    7 |  Months = Months + 1 ;
      |  ~~~~~~~^~~~~~~~~~~~
con.cpp:8:9: error: assignment of read-only variable ‘Months’
    8 |  Months = 45 ;
      |  ~~~~~~~^~~~

4.一定要在声明中就对带有const的常量进行初始化,下面这样不对:

const int toes ;
toes = 10 ;

编译结果:

con.cpp:10:12: error: uninitialized const ‘toes’ [-fpermissive]
   10 |  const int toes ;
      |            ^~~~
con.cpp:11:7: error: assignment of read-only variable ‘toes’
   11 |  toes = 10 ;
      |  ~~~~~^~~~

在C++而不是C语言中,可以用const值来声明数组长度。

5.浮点数提供的值范围也更大,如果数字很大,无法表示为long类型,比如100兆,也可使用浮点数。

6.带小数部分的数字,计算机会将其分成两部分存储。一部分表示值,另一部分用于对其值进行放大和缩小。比如,对于数字34.1245和34124.5,除了小数点位置不同,其他都相同。可以把第一个数表示为0.341245(基准值)和100(缩放因子)。C++内部表示浮点数的方法与此相同,只不过它基于的是二进制数,因此缩放因子是2的幂,不是10的幂。

7.下面的语句:

cout.setf(ios_base::fixed, ios_base::floatfield);

这种调用迫使输出使用定点表示法,以便更好地了解精度,它防止程序把较大的值切换为E表示法,并使程序显示到小数点后六位。参数ios_base::fixed和ios_base::floatfield是通过包含iostream来提供的常量。

8.除法运算符()的行为取决于操作数的类型。如果两个操作数都是整数,则C++将执行整数除法。这意味着结果的小数部分将被丢弃,使得最后的结果是一个整数。如果其中有一个(或两个)操作数是浮点数,则小数部分将保留,结果为浮点数。

9.对不同类型进行运算时,C++将把它们全部转换成同一类型。浮点常量在默认情况下为double类型。

10.使用相同的符号进行多种操作叫做运算符重载。

你可能感兴趣的:(C++,Primer,Plus,c++)