标题:关于数组与指针
只看楼主
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
结帖率:100%
已结贴  问题点数:20 回复次数:4 
关于数组与指针
假设现在有一个指针数组
int *arr = new int[10]
malloc 太复杂,这里暂时用 new 代替动态数组申请空间
另外还有一个数组指针
int *p = arr
当执行 9 次 p++ 或者执行一次 p += 9,则 p 指向数组的最后一个元素
当继续执行 p++ 的时候,p 就不再指向数组中的元素
现在如果想要 p++ 一旦超出数组范围,就立马回到数组第一个,实现循环的数组指针
目前已经想到的方法就是用一个函数去检查 p 的地址和 arr 的地址是否匹配
各位大佬是否有更好的方法?

问题是来自于数据结构的循环队列,书上用的是 int 类型的下标,但是写的时候想改成用指针

[此贴子已经被作者于2018-1-22 20:07编辑过]

搜索更多相关主题的帖子: 数组 指针 int 执行 循环 
2018-01-22 20:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
定义首指针尾指针
2018-01-22 20:26
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:5 
递增量对数组长度取余,取余后返回给递增量,再来递增
2018-01-22 21:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:12 
p = arr + (p-arr+1)%10;
2018-01-23 08:22
小白0号
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2018-1-4
得分:0 
if语句判断超出范围之后,重新赋值指针应该可以吧
2018-01-25 20:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484402-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.772578 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved