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、指针可能失效,而引用不会失效

  • 相关阅读:
    WEP编码格式
    OSK VFS read数据流分析
    科学剖析濒死体验 "复生"者讲述"死"前1秒钟
    Android的开发相对于tizen的开发难度
    minix文件系统分析
    贴给小程序(1) 查找第一个0值
    Linux下的QQ
    OSK USB 驱动
    LRU算法之hash+list实现(转)
    插入排序
  • 原文地址:https://www.cnblogs.com/Big-Rabbit/p/4376163.html
Copyright © 2011-2022 走看看