只说一句,数组下标与间址运算符*是等价的,即:a[i] = *(a+i),看代码:
int main(int argc, char* argv[]) { double a[5] = {1, 2, 3, 4, 5}; int i; for(i = 0; i < 5; i++) printf("%.2lf\t%.2lf\t%.2lf\t%.2lf\n",a[i], *(a+i), *(i+a), i[a]); } // end of main
输出:
奇怪的是i[a]的用法,i是int类型的,a是double的数组,直接证明数组下标和间址运算符等价,即:i[a] = *(i+a);