C++学习笔记:仅记录一些琐碎的小知识点

C++primer阅读笔记

第三章 字符串、向量和数组

3.3 标准库类型vector

  • 列表初始化vector时,必须使用花括号vector v1{"a","an","the"};


  1. 例如 short a = 32768,即超过short的范围时,a的值会显示错误(例如):
  2. float a = 3.14f, float一般后面加f,否则一般默认的是double类型:
  3. 无论是float类型还是double类型,一般都默认值显示6位显示数据,可以通过一些配置使显示的位数变多。
  4. 字符型变量并不是把字符本身放到内存存储,而是将对应的ASCII码放入存储单元,若(int)c c为字符,则显示c的ascii码值
  5. /t 有水平制表的效果,可以整齐的输出\t后面的内容:
  6. 使用C++风格创建字符串时,记得引用头文件:
include int main{  string stc = "hello,world";}

7.两个整数相除,结果仍是整数;两个小数相除,则结果可以是小数;两个小数是不可以做取模运算的。


  1. 三目运算符: 表达式1 ” />
  2. 一维数组arr[10],则sizeof(arr) 可以统计该数组再内存中的长度,若直接:
    cout << (int)arr <<endl;则可以打印数组的首地址的10进制形式。
  3. 指针的数据类型:在32位下占用4个字节,在64位下占用8个字节,不管是什么数据类型。
  4. 空指针用于给指针变量初始化,空指针是不可以进行访问的(因为空指针是指向编号为0的空间,而0-255是系统占用内存,不能访问)。int * p = NULL;野指针是指指针变量指向非法的内存空间,例如:int * p = (int * )0x1100;
  5. 常量指针:const int * p=&a; 特点为,指针的指向可以修改,但是指针指向的值不可以改,即*p=20错误,p=&b可以。
  6. 指针常量:int * const p =&a;特点为指针的指向可以改,指针指向的值不可以改,即*p=20可以,p=&b错误。
  7. const即修饰指针又修饰常量:const int * const p=&a;此时指针的指向和值都不可以改,即*p=20不可以,p=&b也不可以
  8. 将函数中的形参改为指针(可以改为常数形式),可以减小内存空间的使用,而且不会复制新的副本出来

  1. 引用可以做函数的左值
  2. 类内属性的命名规范:m_Age m_表示的是member
  3. 空指针调用成员函数,加入if判断语句可以提高代码健壮性

  1. 空类占一个内存。

疑问

  1. 疑问:为啥C++给函数传入数组后,函数内部对数组操作,会影响数组的值?