这些代码工作完美:C++使用函数结果作为参数
#include <ctime>
int main()
{
time_t t;
struct tm* now;
t = time(0); // Here is my attention
now = localtime(&t); // and here
return 0;
}
现在我想在if语句以此作为条件,所以我想这样做在同一行。我试试这个代码:
now = localtime(&(time(0)));
但我得到的错误:
E0158 expression must be an lvalue or a function designator
为什么我不能调用一个函数另一个函数内,并使用它作为结果参数?
P.S.我正在Visual Studio 2017中工作。
您尝试获取存储在堆栈中的值的引用。 – Check
@Check't'在“堆栈”上(有自动存储时间)。 – LogicStuff
您可以使用函数的结果作为参数,但'&(time(0))'不是函数的结果,'time(0)'是。 – molbdnilo