反向指针功能问题

Reverse Pointer function issue

本文关键字:问题 功能 指针      更新时间:2023-10-16

我在指针返回函数方面遇到了问题。错误"调用对象类型'int*'不是函数或函数指针"reverseArray = reverseArray(array,size);。我不确定为什么它会给我这个错误,这不是我的解决方案,我使用此解决方案作为指导来帮助我解决问题。由于我已经坐了 2 个小时试图解决它,但我无处可去,所以我决定查找它并了解如何解决问题。并使用调试器分解其解决方案,以了解其解决方案的工作原理。我知道这是一件坏事,因为我没有学习如何自己解决问题。

#include <iostream>
int* reverseArray(int [], int );
int main()
{   const int size =5;
    int array[size] = {1,2,3,4,5};
    int* reverseArray;
    for(int i =0; i < size;i++)
    {
        std::cout << array[i];
    }
    reverseArray = reverseArray(array,size);
    for(int i =0; i <size;i++)
    {
        std::cout <<array[i];
    }
    return 0;
}
int* reverseArray(int array [],int size)
{
    int* newArray;
    newArray = new int[size];
    int j = 0;
    for(int k =size-1;k>=0;k--)
    {
        newArray[j] = array[k];
        j++;
    }

    return newArray;
}

错误是不言自明的。

"调用对象类型'int*'不是函数或函数指针"。在函数main()中,您将要作为参数传递给reverseArray()函数的数组命名为与函数 (reverseArray( 相同的名称。编译器因此在该范围内感到困惑,并认为您正在将变量作为函数调用。

见下文:

#include <iostream>
int* reverseArray(int [], int );
int main()
{   const int size =5;
    int array[size] = {1,2,3,4,5};
    int* reverseArray; // Change this name to something else
    for(int i =0; i < size;i++)
    {
        std::cout << array[i];
    }
    reverseArray = reverseArray(array,size);
    for(int i =0; i <size;i++)
    {
        std::cout <<array[i];
    }
    return 0;
}

希望对:)有所帮助