用户可以通过指定不带索引的数组名称来生成一个指向数组第一个元素的指针
double balance [50]
balance 是一个指向&balance [0]的指针,即数组balance的第一个元素的地址,因此,下面的程序片段把p赋值为balance的第一个元素的地址
double *p;
double balance [10];
p=balance;
使用数组名作为常量指针是合法的,反之亦然,因此,*(balance+4)是一中访问balance[4]数据的合法方式,一旦用户把第一个元素的地址存储在p中,用户就可以使用*p,*(p+1),*(p+2)等来访问数组元素
#include <iostream>
using namespace std;
int main()
{
double balance [5]={1000.0,2.0,3.4,17.0,50.0} //带有5个元素的浮点型数组
double *p;
p=balance;
cout<<"使用指针的数组值"<<endl;
for (int i =0;i<5;i++)
{
cout<<"*p+"<<i<<*(p+i)<<endl;
}
cout<<"使用balance作为地址的数组值"<<endl;
for (int i=0;i<5;i++)
{
cout<<"balance+"<<i<<*(balance+i)<<endl;
}
return 0;
}
显示结果
使用指针的数组值
*(p+0):1000
*(p+1):2
*(p+2):3.4
*(p+3):17
*(p+4):50使用balance作为地址的数组值
*(balance+0):1000
*(balance+1):2
*(balance+2):3.4
*(balance+3):17
*(balance+4):50在上面的实例中,p是一个指向double型的指针,这意味着它可以存储一个double类型的变量,一旦我们有了p中的地址,*p将给出存储在p中相应地址的值