黑马课程C++笔记 | 内存分区,new运算符,引用等核心知识点

1.内存四区

内存四区:代码区全局区栈区堆区



2.new运算符

语法:new 数据类型(对应的释放操作符为delete)

利用new创建的数据,会返回该数据对应类型的指针

例:

  • 整型:int * p = new int(10);
    delete p;

  • 数组:int *arr = new int[10];
    delete[] arr;



3.引用

作用:给变量起别名(别名可以和原名一样)
语法:数据类型 &别名 = 原名
本质:指针常量(指针指向不可改变,指向的值可以改变)


*注:由于别名原名调用的是同一片内存空间,所以可以通过其中任意一个名称对内存的值进行修改
例:

  • int a = 10;
    int &b = a;
    b = 20; //则a也变成20


  1. 引用必须初始化
    int &b;(×)
    int &b = a;(√)
  2. 一旦初始化,就不可以更改
    int &b = a;
    b = c;(×)//第二句不是更改引用,属于赋值操作

*注:形参实参

  1. 值传递,形参不修饰实参

  2. 地址传递,形参修饰实参

  3. 引用传递,形参修饰实参

  4. 引用做函数返回值时,函数调用可以作为左值


注:

引用相当于指针常量:int &b = a; =》int * const b = &a;
常量引用const int &a = 10;(使值变成只读,防止误操作) =》int temp = 10; const int &a = temp;



4.函数参数(默认参数、占位参数)

  1. 默认参数

  2. 占位参数



5.函数重载

满足条件:
1、同一个作用域下;
2、函数名称相同;
3、函数参数类型不同,或者个数不同,或者顺序不同


例:顺序不同

  • 函数的返回值不同不可以作为函数重载的条件

  1. 引用作为重载的条件

  2. 函数重载碰到默认函数



posted @ 2021-09-22 22:47  不是勇士  阅读(94)  评论(0)    收藏  举报