void和int函数之间有什么不同?我什么时候使用哪个?只打印出消息或变量值时会无效吗?像cout<<值;
或者只是文字?
当你真正在其中进行计算时,是否使用了int?
答案 0 :(得分:5)
void
。
例如。
void no_return_fn()
{
cout<< "This function will not return anything" << endl;
return; // returns nothing or void
}
当你必须从函数返回一个整数值到函数的调用者时,使用 int
例如。
int return_sum_of_integers_fn(int a, int b)
{
cout<< "This function returns an integer" << endl;
return (a + b); // returns an integer
}
答案 1 :(得分:4)
您希望功能返回吗?如果没有,那么它应该是void
。如果您希望它返回int
,那么它应为int
。如果你想让它返回别的东西,那么它应该有一些其他的返回类型。
答案 2 :(得分:1)
有些人更喜欢使用返回int的函数来表示某些错误或特殊情况。请考虑以下代码:
int print (int* ptr)
{
if (ptr == NULL)
{
return -1; // Error code.
}
std::cout << *ptr;
return 1; // Success code.
}
答案 3 :(得分:1)
当你使用void时,这意味着你不希望从函数返回任何东西。 而int返回可能是函数计算的结果,或者指示返回时的状态,例如错误号或其他可以告诉你函数执行时发生了什么的事情。
答案 4 :(得分:0)
您返回void
表示返回 nothing 。
int返回可能会也可能不会表明已经执行了计算(例如,可能只是返回代码)。
答案 5 :(得分:0)
就像上面提到的那样,void
没有返回值,所以当你不需要这样做时你就可以使用它。
例如,你可以使用'void'来打印文本,但主要是修改参数(改变你已经拥有的东西),所以你不需要返回一个值。
假设您要查找int c
,即二(整数)数,a
和b
(所以a + b = c)。您可以编写一个函数来添加这些数字并将其值分配给c
int c;
int sum (int a, int b)
{
return a+b;
}
c = sum(a,b);
使用void
时,您只需修改c
,因此您可以c = function(arguments)
修改function(c)
,而不是写c
,例如:
int c;
void sum(int a, int b, int c)
{
c = a+b;
}
sum(a,b,c);
在最后一行之后,您拥有的“c
”等于“a
”与“b
”的总和: - )
答案 6 :(得分:0)
实际上,如果您正在为托管系统编译代码,例如PC,Linux,Mac,Android,则必须这样做。然后main必须返回int。如果您正在为独立系统编译代码,例如嵌入式微控制器,或者如果您正在制作操作系统,那么main的返回类型可以是任何东西。
虽然如果使用int或void但是根据标准C不符合规定,则不会发生错误。
答案 7 :(得分:0)
另一个区别是void函数不需要在其中返回: 这两段代码是有效的,不会生成编译器警告: 小片1
void msg1()
{
cout<< "This is a message." << endl;
return; // returns nothing or void
}
Snippet 2
void msg2()
{
cout<< "This is a message." << endl;
}
两者都有相同的行为,不会显示任何警告。
如果声明一个非空函数并且你没有返回一个值,你的编译器很可能会显示一个类似于&#34;的警告。警告:函数中没有return语句返回非void&#34;。
如果显示此错误,它取决于发送给编译器的修饰符参数。
此代码非常类似于显示编译器警告,因为没有返回:
int test(){
printf("test");
}