1、 获取数组元素的地址
指针和数组存在特殊的关系,很容易混淆。获取数组第一个元素的地址,可以采用两种方法,第一种采用地址运算符&来实现,第二种方法直接使用数组的名字。代码如下:
float dues[] ={11.00,58.00,45.00};
float dp1 =&dues[0]
//或者
float dp2=dues;
float dp1 =&dues[0]
//或者
float dp2=dues;
进一步讨论如何获取数组中的任何一个值的地址,一个数组地址后面跟上加号和一个整型表达式,就相当于以该整型表达式作为下标的数组元素的地址。例如:
float dues[] ={11.00,58.00,45.00}
float dp1 =&dues[2]
//或者
float dp2=dues+2;
float dp1 =&dues[2]
//或者
float dp2=dues+2;
2、 数组和指针的关系
数组的标识符不像一般变量的标识符,数组标识符不是左值,不能给它赋值,它只是一个进入方括号语法的手段,也是数组存储数据的起始地址。所以数组的标识符可以看做是只读的指针,而指针的内容是可以改变的。代码参考如下:
int a[10];
int *p = a;
for(int i=0;i<10;i++)
{
a[i]=i*10;
}
int *p = a;
for(int i=0;i<10;i++)
{
a[i]=i*10;
}
上面的操作是给数据a赋初始值。
下面的操作时给数据a赋值,并把原来的数值覆盖掉。
for(int i=0;i<10;i++)
{
p[i]=i*15;
}
{
p[i]=i*15;
}