c++学习笔记(六):数组指针

这是最有可能的,读者有可能不理解本章内容直到学相关C++指针的章节学习。

因此,假如有C++指针位的理解,那么数组名是一个常量指针数组的第一个元素。因此,在声明:

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 ()
{
   // an array with 5 elements.
   double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
   double *p;

   p = balance;
 
   // output each array element's value 
   cout << "Array values using yiibaier " << endl; 
   for ( int i = 0; i < 5; i++ )
   {
       cout << "*(p + " << i << ") : ";
       cout << *(p + i) << endl;
   }

   cout << "Array values using balance as address " << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "*(balance + " << i << ") : ";
       cout << *(balance + i) << endl;
   }
 
   return 0;
}

让我们编译和运行上面的程序,这将产生以下结果:

Array values using yiibaier
*(p + 0) : 1000
*(p + 1) : 2
*(p + 2) : 3.4
*(p + 3) : 17
*(p + 4) : 50
Array values using balance as address
*(balance + 0) : 1000
*(balance + 1) : 2
*(balance + 2) : 3.4
*(balance + 3) : 17
*(balance + 4) : 50

在上述的例子中,p是一个指针指向double,这意味着它可以存储double类型的变量的地址。一旦我们有了p的地址,*p可在存储在p上的地址,如上述的例子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值