C语言中函数返回值的问题-创新互联

c语言中有关于在函数返回值的问题,在函数中的局部变量主要是在栈上开辟的,出了函数变量就被回收了,针对函数返回值得问题,给出下面几个比较具体的例子来说明:

创新互联成立于2013年,我们提供高端成都网站建设成都网站制作成都网站设计、网站定制、成都全网营销微信小程序、微信公众号开发、网站推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都水处理设备企业提供源源不断的流量和订单咨询。
  1. 函数返回值是在函数中定义的局部变量

    这类型的返回值在主函数中是可以使用的,因为返回局部变量值得时候,返回的是值得一个副本,而在主函数中我们需要的也只是这个值而已,因此是可以的,例如

  2. int fun(char *arr)

  3. {

  4. int num = 0;

  5. while (*arr != '\0')

  6. {

  7. num = num * 10 + *arr - '0';

  8. arr++;

  9. }

  10. return num;

  11. printf("%d ", num);

  12. }

  13. int main()

  14. {

  15. int tem = 0;

  16. char *arr = "12345";

  17. tem = fun(arr);

  18. printf("%d",tem);

  19. system("pause");

  20. return 0;

  21. }

  22. 2.函数返回的是函数中定义的指针变量

  23. char *fun()

  24. {

  25. char *arr = "1234";

  26. return arr;

  27. }

  28. int main()

  29. {

  30. char *tem = fun();

  31. printf("%s", tem);

  32. system("pause");

  33. return 0;

  34. }

  35. 这在运行过程中也是正确的。

  36. 3.函数不能返回局部变量的地址

  37. int *fun()

  38. {

  39. int a = 10;

  40. return &a;

  41. }

  42. int main()

  43. {

  44. int *tem = fun();

  45. printf("%d", *tem);

  46. system("pause");

  47. return 0;

  48. }

  49. 4.函数也不能返回数组的首地址

  50.  int *fun()

  51. {

  52. int arr[] = { 1, 2, 3, 4 };

  53. return arr;

  54. }

  55.  int main()

  56.  {

  57. int *tem = fun();

  58. system("pause");

  59. return 0;

  60. }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:C语言中函数返回值的问题-创新互联
网址分享:http://scyanting.com/article/eijds.html