溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中函數返回值的問題

發布時間:2020-07-22 19:02:03 來源:網絡 閱讀:487 作者:走走停停吧 欄目:網絡安全

c語言中有關于在函數返回值的問題,在函數中的局部變量主要是在棧上開辟的,出了函數變量就被回收了,針對函數返回值得問題,給出下面幾個比較具體的例子來說明:

  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.  

  38. int *fun()

  39. {

  40. int a = 10;

  41. return &a;

  42. }

  43. int main()

  44. {

  45. int *tem = fun();

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

  47. system("pause");

  48. return 0;

  49. }

  50. 4.函數也不能返回數組的首地址

  51.  int *fun()

  52. {

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

  54. return arr;

  55. }

  56.  int main()

  57.  {

  58. int *tem = fun();

  59. system("pause");

  60. return 0;

  61. }

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女