C++函数中声明和返回变量,并在主函数中使用它

C++ declaring and returning a variable in a function and using it in the main function

本文关键字:函数 变量 声明 返回 C++      更新时间:2023-10-16

我希望我的函数sum()将两个数字相加并将结果分配给变量"result"。然后我想将此结果输出到我的主函数中。我在这里做错了什么:

#include <stdio.h>
#include <stdlib.h>
int sum(int a,int b)
  {
   int result;
   result = a + b;
   return result;
  }
main()
{ 
   int a=2;
   int b=3;
   sum(a,b);
   printf("%d",result); 
   system("PAUSE");
}

Erm,您可以将sum的结果分配给局部变量并打印它:

#include <stdio.h>
#include <stdlib.h>
int sum(int a,int b)
  {
   int result;
   result = a + b;
   return result;
  }
main()
{ 
   int a=2;
   int b=3;
   int res=sum(a,b);
   printf("%d",res); 
   system("PAUSE");
}

但是,如果你问这种问题,那么你真的会为C++而苦苦挣扎..!

在主函数中放置:

int result = sum(a,b);
result是一个

局部变量。 它仅存在于sum()函数的上下文中。

sum()返回result by-value,这意味着正在(可能)创建result的副本并从函数返回。 由于您没有将该值分配给任何内容,因此它消失了。

首先,这样做:

int main()
{
  int a=2;
  int b=3;
  int c = sum(a,b);
  printf("%d",c); 
  system("PAUSE");
}

运行完它之后,停止你正在做的事情,拿起一本关于C++的好书。

好吧,我知道我只知道一点这种语言,但我仍然可以轻松回答这个问题。

#include <stdio.h>
#include <stdlib.h>
int sum(int a,int b)
  {
   int result;
   result = a + b;
   return result;
  }
main()        // Are you serious? You forgot the int?
{ 
   int a=2;
   int b=3;
   sum(a,b);  // I'll explain this later.
   printf("%d",result); 
   system("PAUSE");
}

int sum() 块中,int 结果是一个局部变量,这意味着一个只能由内部创建的块访问的变量。因此程序不会返回结果。

主块内的 sum(a,b) 应这样写:

int r = sum(a,b);

注意:您可以将代码中的"r"替换为您喜欢的任何名称。

main() 部分应该这样写:

int main() {

无论如何,你现在使用的语言被称为"C语言",而不是C++它基于我刚才说的那种语言。所以去找一本关于C++的书,但如果你对你正在使用的那本书感兴趣,那就去找一本关于C语言的书。