C++ 反向指针函数问题

C++ 反向指针函数问题,c++,function-pointers,C++,Function Pointers,指针返回函数有问题。调用对象类型“int*”时出现的错误不是函数或函数指针reverseArray=reverseArrayarray,size;。我不知道为什么它会给我这个错误,这不是我的解决方案我用这个解决方案作为指导来帮助我解决这个问题。因为我已经坐了两个小时试图解决这个问题,但我没有办法解决它,所以我决定去查一下,想办法解决这个问题。并使用调试器分析其解决方案,以了解其解决方案工作的原因。我知道这是一件坏事,因为我没有学会如何独自解决问题 #include <iostream>

指针返回函数有问题。调用对象类型“int*”时出现的错误不是函数或函数指针reverseArray=reverseArrayarray,size;。我不知道为什么它会给我这个错误,这不是我的解决方案我用这个解决方案作为指导来帮助我解决这个问题。因为我已经坐了两个小时试图解决这个问题,但我没有办法解决它,所以我决定去查一下,想办法解决这个问题。并使用调试器分析其解决方案,以了解其解决方案工作的原因。我知道这是一件坏事,因为我没有学会如何独自解决问题

#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;
}

希望有帮助:

您对函数和变量使用了相同的名称。变量隐藏了函数,所以当函数在作用域中时,你不能很容易地调用它。好的,这让事情更清楚了,谢谢你:我只是好奇。编写反向函数有更好的方法吗?通常在编程语言中,递归是最好的方法!在C++中,你也可以通过一些努力来实现这一点。如果你问另外一个问题,我会投赞成票,并试着告诉你怎么做。让我知道@PierreYes,那太棒了!