C++ Primer 第五版

发布时间 2023-08-01 09:42:45作者: kaling
  • 当我们使用istream对象作为条件时,其效果是检测流的状态.
  • char:[-128,127].
  • C++ 17新增byte数据类型,在<cstddef>头文件中定义,取值范围:[0,255].
  • int和long都占用4字节空间.
  • 切勿混用带符号类型和无符号类型.
  • \后跟3位以内8进制数字,或\x后跟一个或多个16进制数字都可以代表字符.
  • 原始字符串:[R"(string)"] 或 [R"+*(string)+*"]
  • 初始化不是赋值,初始化是创建变量时赋予其一个初始值,赋值是把对象的当前值擦除,而以一个新值来替代.
  • 任何值,或值与运算符组合都是表达式,每个表达式都有一个值.表达式加分号称为语句,但语句去掉分号不一定是表达式,有些语句没有值.
  • 为了支持分离式编译,C++将声明和定义区分开来.声明规定了变量类型和名字,定义申请存储空间.变量能且只能被定义一次,但是可以被多次声明.
  • nullptr,0,NULL<cstdlib>都可以代表空指针.void*可以指向任意类型的变量,也可以是空指针.void*仅指向某个内存空间,无法访问内存空间中的变量.
  • 要在多个文件之间共享const变量,须在变量声明定义之前都添加extern关键字.
  • 常量引用可以指向常量对象,也可以指向非常量对象.非常量引用不能指向常量对象,只能指向非常量对象.指针也一样.
  • 常量表达式是指不会改变,并且在编译期间就能得到结算结果的表达式.
  • [&&:and] [!:not] [!=:not_eq] [||:or]
  • int arr[3]={1,2,3}; int* pt=arr; arr有双重含义:数组名和指向首元素的指针.sizeof(arr)代表数组占用空间12字节;sizeof(pt)代表指针变量占用空间,X86平台4字节,X64平台8字节.arr等同于&arr[0],与&arr数值相等,但一个代表首元素地址,一个代表数组地址.arr+1地址加4;&arr+1地址加12.
  • int (*parr)[3]= &arr:parr是指向含有三个整数元素数组的指针,类型为int(*)[3].*parr与数组名arr等价,与首元素指针arr不等价.(*parr)[0]代表数组首元素.
  • int * pn = new int; typeName * pointer_name = new typeName;
  • new与delete要配对使用.删除指针,代表释放指针指向的内存,但指针变量不会被删除,可以让指针变量指向另一块新分配的内存.
  • char t[3] = "ab";cout<<t;表示输出字符串"ab";cout<<(int*)t;输出地址.
  • 别名:typedef typeName aliasName;
  • cin.get()读取一个字符并返回int类型字符编码;cin.get(ch),读取一个字符存入ch变量,此处ch为引用参数.char name[size]; cin.get(name, size);表示连续读取字符,直到遇到'\0'或读取字符数目达到size-1.