c++ 指针和内存

本文探讨了C++中指针与数组之间的紧密联系,详细解释了如何利用指针访问数组元素,包括指针的基本运算及其与数组下标的对应关系,并讨论了指针运算的特殊性。

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

使用指针访问数组元素
c++语言中,指针和数组密切相关。
*****************************
int ia[] = {0,2,4,6,8};
int *ip = ia;// ip points to ia[0]
*****************************
指针的算数操作
与其使用下标操作,倒不如通过指针的算数操作来获取指定内容存储地址。
指针的算数操作和迭代器的算术操作以相同的方式实现。
使用指针的算数操作在指向数组某个元素的指针上加上或减去一个整数数值
就可以计算出指向数组另一个元素的指针值:
*****************************
ip = ia;
int *ip2 = ip +4;// ip2 points to ia[4]
*****************************
通常,在指针上加上或减去一个整数数值n等效于获得一个新指针,该新指针
指向指针原来指向的元素之后或之前的第n个元素。
c++读取数组时可以让它越界(实际就是个指针你指哪里,就可以知道里面的
内容是啥),java不行直接抛出异常。

 

思考
为什么指针ip+4指向的是ia[4]而不是+4bit呢?可不可以让一个指针指向ip+1
bit后的地址?要是不行,byte呢?

 

write by fgd

转载于:https://www.cnblogs.com/wendao/archive/2012/02/24/cpp_pointer_and_memory_learning.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值