A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nishi5151 中级黑马   /  2014-12-9 11:35  /  955 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在表达式使用数组名时,实际上使用的是指向数组第一个元素的指针。这种用法涉及很多方面,当它们出现时我们会逐一指出来。其中一个重要的应用就是使用下标访问数组时,实际上是使用下标访问指针:
int ia={0,2,4,6,8};
int i=ia[0];
ia[0]是一个使用数组名的表达式。在使用下标访问数组时,实际上是对指向数组元素的指针做下标操作。只要指针指向数组元素,就可以对它进行下标操作。
计算数组超出末端指针
vector类型提供的end操作将返回指向超出vector末端位置的一个迭代器。这个迭代器常用作哨兵,来控制处理vector中元素的循环。类似地,可以计算数组的超出末端指针的值:
const  size_t arr_size=5;
int arr[arr_size]={1,2,3,4,5};
int *p=arr;
int *p2=p+arr_size;
以上的例子中,p指向数组arr的第一个元素,在指针p上加数组长度既可计算出数组arr的超出末端指针。p加5得到p所指向对象的元素后面的第5个int元素的地址——换句话说,p+5指向数组超出末端的位置。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马