数组

知识点总结

Posted by GG on February 25, 2018

数组

  1. 有序数组二分查找成功找到次数:第一次:==index=(0+length-1)/2== 第二次:==index’=(0+index-1)/2==,注意这里向==下==取整。
  2. 三元组做到下面三条便可实现矩阵的转置: (1)将矩阵的行列值交换。 (2)将每个三元组中的 i 和 j 相互调换。 (3)重排三元组之间的次序。
  3. 数组可通过==值参数、地址指针、引用参数==三种方式传递给函数。数组的大小不必须在编译时确定,例如动态数组。
  4. 表示a[1]地址: ++a+sizeof(int)++ // 不正确, 在32位机器上相当于指针运算 a + 4
    ++&a[0]+1++ // 正确,数组首元素地址加1,根据指针运算就是a[1]的地址
    ++(int)&a+1++ // 正确,数组地址被强制类型转换为int,然后加1
    ++(int)((char)&a+sizeof(int))++// 正确,数据地址先被转换为char,然后加4,根据指针运算公式,向前移动4 * sizeof(char),之后被转换为int,显然是a[1]的地址

  5. n行n列的对称矩阵A,将其下三角部分按行存放在一个一维数组B中,则==下三角B为(i+3)i/2,上三角为(2n-i+1)i/2==。
  6. 稀疏矩阵压缩的存储方法:==三元组顺序表 (行下标,列下标,值);行逻辑链接的顺序表;十字链表==。
  7. gets(字符数组名或指针), gets==能够接受空格、制表符Tab和回车==等。 gets和sacnf函数,在字符串结束后自动加’\0’。
  8. “关联数组”是一种具有==特殊索引方式==的数组。不仅可以通过==整数==来索引它,还可以使用==字符串或者其他类型的值==(除了NULL)来索引它。关联数组和数组类似,由以名称作为键的字段和方法组成。 它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。