将指针指向数组的末尾

时间:2015-11-29 18:31:10

标签: c arrays pointers indexing

如何检查指针是否在我的数组的末尾? 这是我的代码。如果输入d且指针在末尾,则不要做任何事情;如果没有,请向右移动。

if(d == 'd') 
{
    if (*p != a[6])   //a[6] is the array length // this is where i need help
    {
        ++*p;
        num_mov++;
        print_status(a, *p, num_mov);
    }
    else
        print_status(a, *p, num_mov);
}

2 个答案:

答案 0 :(得分:2)

使用条件

if ( p != a + 6)

考虑到这个陈述

++*p;

不会增加指针本身。它会增加指针指向的对象。

如果你想增加指针本身你应该写

++p;

同时检查函数print_status的第二个参数是否被声明为指针。如果是这样,那么你必须写

print_status(a, p, num_mov);

的插入内容
print_status(a, *p, num_mov);

答案 1 :(得分:0)

使用p!= a + 6来比较指针,因为如果数组中有重复的元素,这会给出更好的答案。

这将指向结束。对于最后一个元素,使用p!=(a + 5)