zoukankan      html  css  js  c++  java
  • c point

    a[i] 与 *(a+i) 是等价的。

    事实上在计算a[i]的值时,c语言首先将前者转换为后者形式,

    而且,通常而言,用指针编写的程序要比用数组下标编写的程序执行速度快,(为什么?)

    因此,应该尽量用*(a+i)代替a[i],

    但是,我们必须记住 

    指针是一个变量

    在c语言中 pa = a 和 pa ++ 都是合法的(pa与a 是指针变量),

    但数组名不是变量,对数组名进行以上操作是非法的。

    当把数组名传递给一个函数参数时,

    实际上是 用 局部变量 保存了一个 常量,

    arr  --------->  int *p 

    在函数定义中 char s[] 与 char *s 是完全等价的。

    我们通常更习惯于使用后一种形式,因为它比前者更直观地表明了该参数是一个指针。

  • 相关阅读:
    创新工场 笔试1
    C++的异常处理
    阿里笔试题2
    阿里笔试题1
    控制CPU占用率曲线
    再探结构体字节对齐问题
    1401
    pancake sort的几个问题
    CF198 D2
    谨慎设计一个单例类
  • 原文地址:https://www.cnblogs.com/xkxf/p/6144412.html
Copyright © 2011-2022 走看看