c - 使指针指向数组的末尾

标签 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);
}

最佳答案

使用条件

if ( p != a + 6)

考虑到这个声明

++*p;

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

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

++p;

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

print_status(a, p, num_mov);

插入

print_status(a, *p, num_mov);

关于c - 使指针指向数组的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33986388/

相关文章:

c++ - 指针数组困惑

c++ - 关于 C++ 指针和引用,需要澄清

c - 如何编写读取用户输入字符串并仅打印非 ‘a-z’ 或 ‘A-Z’ 的 C 程序

从C编译错误gcc调用Assembly

Python 在带有 numpy 数组数据的 for 循环中附加一个列表

arrays - 在给定数组中查找整数序列

c - argv = NULL 是什么意思?

c - 指向字符串的指针不递增(C 编程)

java - 按 4 的余数对数组进行排序

c++组织变量进行计算 - 速度和可读性