zoukankan      html  css  js  c++  java
  • C++学习3

    C++仍然在使用C语言的 char、int、long 等基本数据类型,它们在现代操作系统(Windows XP、Win7、Win10 等)中的长度如下表所示:

    longlong是C99新增的一种数据类型,用于支持64位整数。由于 C99 标准发布较晚,所以各种 C/C++ 编译器对 long long 的支持比较混乱

    C语言中并未定义bool类型,如果需要使用bool类型,可以使用宏定义,如下所示:

    #define bool int
    #define false 0
    #define true 1

    也就是将 int 型定义为 bool 型,将 int 型的 0 和 1 两个值分别定义为 bool 类型的两个值 true 和 false。

    bool 类型是C++基本数据类型,一般占用1个字节长度。bool类型取值范围仅有两个值:true和false。在做逻辑运算时,默认非零即为ture。

    定义bool类型变量也与其他基本数据类型变量的定义类似,如下所示:

    bool flag = true;

    在C语言中,动态分配内存用malloc函数,释放内存用 free() 函数。如下所示:

    int *p = (int*) malloc( sizeof(int) * 10 );  //分配10个int型的内存空间
    free(p);  //释放内存

    在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。

    用 new 和 delete 分配内存更加简单:

    int *p=new int;   //分配1个int型的内存空间
    delete p;//释放内存

    new 操作符会根据后面的数据类型来推断所需空间的大小。

    如果希望分配一组连续的数据,可以使用 new[]:

    int *p = new int[10];    //分配了10个int型的内存空间
    delete [] p;

    用 new[] 分配的内存需要用 delete[] 释放,它们是一一对应的。

    和 malloc() 一样,new 也是在堆区分配内存,必须手动释放,否则只能等到程序运行结束由操作系统回收。为了避免内存泄露,通常 new 和 delete、new[] 和 delete[] 操作符应该成对出现,并且不要和C语言中 malloc()、free() 一起混用

    指定内联函数的方法很简单,只需要在定义函数时增加 inline 关键字。

    inline 关键字放在函数声明处不会起作用:

    采用内联函数可以有效避免函数调用的开销,程序执行效率更高。使用内联函数的缺点就是,如果被声明为内联函数的函数体非常大,则编译器编译后程序的可执行码将会变得很大。

    通常在程序设计过程中,我们会将一些频繁被调用的短小函数声明为内联函数。

    C++允许多个函数拥有相同的名字,只要它们的参数列表不同就可以。这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。

    函数的重载的规则:

    • 函数名称必须相同。
    • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
    • 函数的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为函数的重载。
  • 相关阅读:
    SQL语句
    [Tips] FTP服务器设置
    [Tips] filezilla连接成功,但是读取列表失败
    [Tips] 安装支持树莓派4b的系统
    [Tips] Ubuntu添加硬盘
    [Tips] BMC添加硬盘并进行raid1设置
    [Tips] docker 中遇到fork/exec /bin/sh: operation not permitted错误
    vue elementui el-cascader级联选择器没子级时出现暂无数据问题
    vue复选框勾选的内容,点击分页之后勾选的状态仍然保存。
    下载导出内容,带类型的//////下载,打印,下载源文件,不加mime类型
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/5785491.html
Copyright © 2011-2022 走看看