数组的名字是一个指针常量,指向数组的起始地址
T a[N];
- a的类型是T*
- 可以用a给一个T*类型的指针赋值
- a是编译时其值就确定了的常量,不能够对a进行赋值
作为函数形参时,T*p 和T p[ ]等价
void Func(int *p){cout<<sizeof(p);}
void Func(int p[ ]){cout<<sizeof(p);}
#include <iostream>
using namespace std;
int main( ){
int a[200];
int *p;//p指向数组a的起始位置,即p指向了a[0]
*p=10;//使得a[0]=10
*(p+1)=20;//使得a[1]=20
p[0]=30;//p[i]和*(p+i)是等效的,使得a[0]=30
p[4]=40;//使得a[4]=40
for (int i=0;i<10;++i)//对数组a的前10个元素进行赋值
*(p+i)=i;
++p;//p指向a[1]
cout<<p[0]<<endl;//输出1 p[0]等效于*p,p[0]即a[1]
p=a+6;// p指向a[6]
cout<<*p<<endl;// 输出6
return 0;
}