我无法理解为什么下面的程序会出错:
int& getID(){
static int r = 0;
return r++;
}
主要内容:
int main(){
int a = getID();
std::cout << "a=" << a << std::endl;
return 0;
}
为什么按照描述返回静态变量会产生问题而不返回 想要的值(value)?
最佳答案
您正在使用后增量(r++ 而不是++r)。后增量的结果是一个临时的,你正试图返回对该临时的引用。你不能那样做。如果你想返回对 r 的引用,那么你可以使用预递增,或者你可以只做递增,然后在单独的语句中返回 r。
关于c++ - 函数返回静态变量 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241540/