gpt4 book ai didi

c++ - 是否存在可以为变量分配 void 函数的情况?

转载 作者:行者123 更新时间:2023-11-30 05:47:16 24 4
gpt4 key购买 nike

我正在准备数据结构考试。回顾前几年的一些考试,我遇到了一个关于为以下代码的运行时间寻找表达式的问题:

void func(int n) {   
if(n<=1)
return;
cout << "some string" << endl;

int x = func(n/2);

cout << "some other string" << endl;

int y = func(n/4) + func(n/4);

for(int i=0; i<2*n; i++)
cout << i << " x+y+i = " << x+y+i << endl;

return;
}

函数名、变量名、字符串等变了,其他没变。

上面的代码是否有任何特殊情况甚至可以编译?我自己在在线可视化 C++ 编译器上进行了检查,并得到了将 void 视为 int 的预期错误……对于这种基本错误如何设法出现在 CS 考试中,我仍然感到非常困惑。 .我宁愿相信在某些情况下我不熟悉上面的语法是有意义的......无论是在 C/C++ 还是其他地方。

最佳答案

如图所示,代码毫无意义。它依赖于 func 的返回值,但是 func 不返回任何东西(它是空的)。

您可以有两个不同的函数,称为 func,但需要有一些东西来区分它们。第一种方法是,如果他们采用不同的参数类型:

void func(int);
int func(double);

这里似乎不是这种情况,因为您总是使用 int 进行调用。

第二个是如果它们在不同的命名空间中,或者如果一个是类成员而另一个不是。在这种情况下,您需要添加一些语法。

int x = other::func(n/2); // to use the namespace "other"
int x = ::func(n/2); // to use a global

关于c++ - 是否存在可以为变量分配 void 函数的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28636633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com