【发布时间】:2012-11-26 16:59:25
【问题描述】:
我有一个简单的问题,因为我没有正确理解该功能。 有这样的代码:
int function(a, b)
{
return a*b;
}
我很清楚,如果 a 和 b 是 int ,那么它会返回结果。 但是有这样的:
int function1(arg1, arg2)
{
//something
if (B)
{
//do something
return;
}
arg1[0] = variable1;
arg1[1] = variable2;
arg2 = variable3;
return;
}
我想命名接口,输入和输出,并将函数体放入“黑盒”。输入是函数的参数,我正确吗?那么输出是整数数组arg1和整数arg2,对吗?如果是这样,如何输出输入,或者如果我错了如何识别它? 另外,如果 B 为真,在返回点会发生什么? function1 什么都不返回吗?如果是这样,为什么不是 void 类型? 抱歉有点混乱和这样有趣的例子,但多亏了这个,我才能理解这个概念。
【问题讨论】:
-
不清楚你想说什么。什么是黑盒?
-
你的函数参数没有类型。这是伪代码吗?
-
我认为他对 C/C++ 中的习语感到困惑,其中一些输入被修改,因此也是“输出”而不是返回类型的单个输出
-
您是否尝试过编译一些看起来像这样的实际 C++ 代码?我有 72% 的把握,如果你说你要返回一个 int(至少在
main之外),编译器不会让你什么都不返回。 -
首选不修改任何内容并通过
return语句返回结果的函数。当您需要修改过于昂贵或不方便复制到函数并返回的值时,通过引用传递。在你学习更多的语言之前完全避免使用指针(甚至更喜欢智能指针而不是原始指针)。