c++primer 4.2指针(下)使用指针访问数组元素

本文深入探讨了指针的算术操作、数组超出末端指针的计算及输出数组元素的方法,提供了清晰的实例解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

注意

================================================

一、指针的算术操作

  1. 指针加上或减去一个整型数值等于获得一个新指针;
  2. 两个指针相减表示两个指针所指向的元素间隔的对象, ptrdiff_t n=ip2-ip
    ,其中ptrdiff_t是和size_t一样的类型,只不过它是signed整型(前提是指向同一个数组的指针)。

  3. size_t 类型用于指明数组长度,必须是一个正数。

  4. 允许在指针上减0,使指针保持不变,如果一个指针具有0值(空指针)则在该指针上加0仍然是合法的,结果还是一个值为0的指针

二、计算数组的超出末端指针

  1. vector 类型提供的end操作将返回指向超出vector末端位置的一个迭代器,这个迭代器常用作哨兵,用来控制处理vector中元素的循环,同样的,我们可以计算数组的超出末端指针的值
const size_t array_size=5; //数组下标的类型必须是const的size_t的类型
int arr[arr_size]={1,2,3,4,5};
int *p=arr;
int *p2=p+arr_size;
//p2指向第五个元素,即数组超出末端的位置,C++允许计
//算超出末端的位置,但不允许对此地址进行解引用操作。

三、输出数组元素

const size_t arr_sz=5;
int int_arr[arr_sz]={0,1,2,3,4};
for(int*pbegin=int_arr,*pend=int_arr+arr_sz;pbegin!=pend;pbegin++)
{cout<<*pbegin<<" ";}
for(vector<int>::iterator  iter=ivec.begin();iter!=ivec.end();++iter)
*iter=0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值