zoukankan      html  css  js  c++  java
  • 《好学的C++ 第2版》 第5章 数组--都给我排好队

    若变量声明时未进行初始化,那变量里保存的是垃圾数据。

    可以用集合来初始化数组。

    c++把全局变量默认初始化为0(数组的每一个元素都会被初始化为0),因为它是静态存储类;但局部变量若未初始化,存的就是垃圾数据。

    也可以把某个函数的局部变量声明为静态的,这样该函数下次调用时还能拿到该局部变量的值(?)。不过它仍然是局部变量,对该函数的外部仍然是不可见的。

    数组下标是距离数组起点的偏移量,第一个元素相对自己的偏移量为0,因而下标从0开始。(FORTRAN下标从1开始,减1操作会多耗费一点时间。C系语言更接近CPU操作。)

    让调用整形变量的表达式执行浮点运算:

    int a = 1;

    double b = a;

    double c = b / 9;

    字符串常量:

    char* wish = "no work tomorrow."

    字符串数组:

    char* lie[3] = {"you", "are", "sexy"};

    越界访问或设置数组元素时,c/C++不会报错,后果是访问或覆盖了数组外部的一个小内存区域,这种漏洞很难调试。C/C++默认“码农知道自己在干啥”,因而程序才能更快更紧凑,带来的缺点就是码农自己要保证数组下标不越界。

    二维数组:矩阵

    int matrix[5][10]; //两重循环才能将其初始化

    c++多维数组里最右侧下标变化最快,matrix[3][2]跟matrix[3][3]在内存里是紧挨着的。

  • 相关阅读:
    F. 数学上来先打表
    LibreOJ β Round #2
    noip飞扬的小鸟
    jxoi2017
    分块算法
    Chino的数列
    cf 613E
    cf 126D
    cf 542E
    cf 512D
  • 原文地址:https://www.cnblogs.com/fFaXzz/p/6659753.html
Copyright © 2011-2022 走看看