zoukankan      html  css  js  c++  java
  • 21天学通C++_Day6

    0、指针&数组

    数组是指向其第一个元素的指针,即数组变量就是指针。故可将(*)用于数组,也可将([])用于指针,eg:

    int MyNums[5] = {0};

    int* pNums = MyNums;

    可以使用*(MyNums+1),也可以使用pNums[1]

     

    1、指针使用时要注意的点

    ①务必初始化指针变量为NULL;

    ②使用前要确认指针是否有效(检查是否为NULL);

    ③new和delete要配套,不然会造成内存泄露

     

    2、检查new发出的分配请求是否满足

    法一:使用异常处理,catch(bad_alloc)

     1 #include "stdafx.h"
     2 #include <iostream>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     try
     8     {
     9         int* pAge = new int [536870911];
    10         delete[] pAge;
    11     }
    12     catch(bad_alloc)
    13     {
    14         cout<<"Error!"<<endl;
    15     }
    16 
    17     return 0;
    18 }

    法二:new(nothrow),内存分配失败时返回NULL

     1 #include "stdafx.h"
     2 #include <iostream>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     
     8     int* pAge = new(nothrow) int [536870911];
     9     if(pAge)
    10     {
    11         delete[] pAge;
    12     }
    13     else
    14         cout<<"Error!"<<endl;
    15 
    16     return 0;
    17 }

     

    3、引用==别名

    引用,可以访问相应变量的内存单元,可以减少函数调用时复制的开销。

    ▪将const用于引用参数,不能做左值,eg:const int& Numbers;(尽量这样做!!!

     

    4、指针可能失效,而引用不会失效

  • 相关阅读:
    笔记。------数组
    图片与文字的对齐方式
    clear:both;和overflow:hidden;的应用理解。
    淘宝首页
    错误:编码GBK的不可映射字符
    Java基础之反射
    (一)Servlet简介
    Windows10快捷键
    (二)Maven的安装与环境配置
    (一)Maven简介
  • 原文地址:https://www.cnblogs.com/Big-Rabbit/p/4376163.html
Copyright © 2011-2022 走看看