zoukankan      html  css  js  c++  java
  • C++自学随笔(2)

    引用

    • 就像人的别名,人不能只有别名,变量也不能只有引用。
    • 指针类型的引用:*&指针引用名 = 指针。
    • int a = 10;int *p =&a;int *&q =p1

    const

    • const定义常量,无法更改。
    • const定义指针时const int *p = NULLint const *p = NULL等价,但与int * const p = NULL不同。
    • int x = 3; const int *p = &x; //p = &y;正确 //p = 4错误
    • int x = 3; int *const p = &x; //p = &y;错误
    • const int x = 3; const int *const p = &x; //p = &y;*p = 4 均错误
    • int x = 3; const int &y = x; //x = 10;正确 // y = 20;错误

    C++函数新特性

    1. 函数参数默认值:定义函数时,参数可以有默认值,如void fun(int i,int j = 5,int k =10);
      • 但需要注意,默认值必须在参数表的最右端,如void fun(int i;int j = 5, int k)是错误的。
      • 没有实参输入时,使用默认值,否则使用实参覆盖默认值。
    2. 函数重载:相同作用域内,用同一函数名定义的多个函数,或者参数个数参数类型不同的函数。
      • int getMax(int x, int y, int z){//to do}int get Max (double x, double y)相互重载。
      • 重载的好处:让计算机代替我我们决定应该使用哪个函数,提高编码效率。
    3. 内联函数:编译时将函数体代码和实参代替函数调用语句。可以为函数调用节省很多时间,特别是循环调用。关键字:inline
      • 内联函数是建议性的,由编译器决定。
      • 逻辑简单,调用频繁的函数建议使用内联。
      • 递归函数无法使用内联方式。

    内存管理

    • 内存的本质:资源
    • 操作系统掌管内存资源
    • 内存管理的意义:向操作系统申请/归还内存
    • 申请内存:int *p = new int;
    • 释放内存 delete p;
    • 申请和释放块内存int *arr = new int[10];申请块内存delete []arr;//释放块内存
    • 申请内存注意事项:有可能出现申请失败的情况需要再申请时考虑到`int *p = new int [1000];if(NULL == p){//内存分配失败}
    • 释放内存注意事项:要根据单个内存与块内存进行匹配,delete pdelete []p各自对应,还需要将指针置空p = NULL;。如果没有收回指针,如果将一块内存重复回收,计算机就会出现异常。
  • 相关阅读:
    布局的诡异bug合集+解决方法(更新中)
    java并发:CopyOnWriteArrayList简单理解
    java集合: LinkedList源码浅析
    Idea设置类注释模板
    jquery使用FormData提交数据
    postman发送json请求
    消息队列的简单理解
    如何设计一个消息队列?
    SpringBoot配置logback
    linux下安装kafka
  • 原文地址:https://www.cnblogs.com/Wjianting/p/5186783.html
Copyright © 2011-2022 走看看