如何检查指针是否在我的数组的末尾?
这是我的代码。如果输入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);
}
答案 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)