指针与数组

传入函数的数组变成了指针

一下四种函数原型是等价的:

  1. int sum(int *ar,int n);
  2. int sum(int *,int);
  3. int sum(int ar[],int n);
  4. int sum(int [],int);

数组变量是特殊的指针

数组变量本身表达地址,所以:

  1. int a[10];int *p=a;//无需用&取地址

但是数组的单元表达的是变量,需要用&取地址

  1. a==&a[0];

[ ]运算符可以对数组做,也可以对指针做:

p[0]<==>a[0];

*运算符可以对指针做,也可以对数组做:

  1. *a=25;

数组变量是const的指针,不能被赋值

  1. int a[]<==>int*const a=......