为什么在第 12 行"if(k>=max)"中给出错误说 " reference to max is ambiguous" ?



这是我的函数,max 是全局的;

#include<iostream>
using namespace std;
int max = 0;
int q = 0;
int func(int a[], int n)
{  
     int k = 1;
    for(int j = q + 1; j < n; j++)
    {
        if(a[j] <= a[j - 1])
        {
            if(k >= max)
            {
                max = k;
                q = j;
            }
            return 0;
       }
        k++;    
    }
    if(k > max)
    {
        max = k;
        return 1;
    }
}

在这里,它给出了一个错误,即将 k 与 max 进行比较是模棱两可的。是因为最大是全球性的吗?

这是因为您使用的是 std 命名空间:

using namespace std;

并且已经有一个与您的变量max冲突的std::max.

最新更新