美文网首页
C++基础知识回顾

C++基础知识回顾

作者: 你好667 | 来源:发表于2017-08-28 09:46 被阅读0次

    内存的管理

    内存分配时候的步骤:

    1. 把指针指向分配内存的地方
    2. 用if(p==null)来判断分配有无分配成功
    3. 在用完内存后要用delete来释放内存
    4. 最后要把指针置空
    //example1
    int * p = new int;
    if(p == NULL)
    {
        //内存分配失败
        //异常处理
    }
    delete p;
    p = NULL;
    
    
    //example2
    int *p = new int[1000];
    if(p == NULL)
    {
        //内存分配失败
        //异常处理
    }
    delete []p; //如果申请的是数组,则一块delete
    p = NULL;   //用完之后把指针置空
    

    const

    http://blog.csdn.net/Eric_Jo/article/details/4138548

    1. const与基本数据类型
    int x=3;            //定义的是一个变量,其值可更改
    const int x=3;      //定义的是一个常量,不可再赋值
    
    1. const与指针类型

    (可变的指针不能指向const定义的常量,不可变的指针可指向变量)

    int const *p;  <=>  const int *p;   存储内容可更改,因为此时const修饰的是*p,所以*p不能再次赋值,而P可以再次赋值。如①
    int *const p;   存储内容不可更改,因为此时const修饰的是p,P不能再次赋值。如②
    int const *const p;  <=>  const int *const p;   此时既不能改变p所指向的变量的存储地址,也不能改变p所指向的变量的存储内容
    
    1. 区分的奇淫巧技

    说一个比较好记的方法来区分 int const p与 int const p,把*读作pointer to然后从后往前读.

    第一个int const *p就可以读作 p is a pointer to const int,p是指向常量的指针

    第二个int* const p就可以读作 p is a const pointer to int,p是指向int型的常指针

    还有其中区别方法,沿着*号划一条线:

    如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;

    如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。

    相关文章

      网友评论

          本文标题:C++基础知识回顾

          本文链接:https://www.haomeiwen.com/subject/okhudxtx.html