指针和数组分析(下)

  • 数组的访问方式
  1. 以下标的形式访问数组中的元素
  2. 以指针的形式访问数组中的元素
  • 下标形式VS指针形式
  1. 指针以固定增量在数组中移动时, 效率高于下标形式
  2. 指针增量为1且硬件具有硬件增量模型时,效率更高
  3. 下标形式与指针形式的转换
        a[n]《=》*(a+n)
        注意: 现代编译器的生成代码优化率已大大提高,在固定增量时,下标形式的效率已经和指针形式相当;但从可读性和代码维护的角度看,下标形式更优
        数组名在有些情况下,可以当做指针来使用,但是它绝对不是指针
  • a和&a的区别
  1. a为数组首元素的地址
  2. &a为整个数组的地址
  3. a和&a的区别在于指针运算
  4. a+1   ==》(unsigned int)a + sizeof(*a)   地址相加一个元素
  5. &a+1 ==》(unsigned int)(&a) + (sizeof(*&a))==》(unsigned int)(&a) + (sizeof(a)) z

猜你喜欢

转载自www.cnblogs.com/chengeputongren/p/12177725.html