反向指针功能问题

时间:2017-03-26 19:21:19

标签: c++ function-pointers

我的指针返回功能有问题。错误,"调用对象类型' int *'不是函数或函数指针" reverseArray = reverseArray(array,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;
}

1 个答案:

答案 0 :(得分:1)

错误是不言自明的。

&#34;调用对象类型&#39; int *&#39;不是函数或函数指针&#34; 。在您的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;
}

希望有所帮助:)