<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # C 編程中的按值函數調用 > 原文: [https://beginnersbook.com/2014/01/c-function-call-by-value-example/](https://beginnersbook.com/2014/01/c-function-call-by-value-example/) 按值調用函數是在 C 編程中調用函數的默認方式。在我們按值討論函數調用之前,讓我們理解在解釋這個時我們將使用的術語: **實際參數:**函數調用中出現的參數。 **形式參數:**函數聲明中出現的參數。 **例如:** ```c #include <stdio.h> int sum(int a, int b) { int c=a+b; return c; } int main( { int var1 =10; int var2 = 20; int var3 = sum(var1, var2); printf("%d", var3); return 0; } ``` 在上面的例子中,變量`a`和`b`是形式參數。變量`var1`和`var2`是實際參數。實際參數也可以是值。像`sum(10,20)`一樣,這里 10 和 20 是實際參數。 在本指南中,我們將討論**按值函數調用**。如果您想閱讀按引用調用方法,請參考本指南:[按引用函數調用](https://beginnersbook.com/2014/01/c-function-call-by-reference-example/)。 讓我們回到原點。 **什么是按值函數調用?** 當我們在調用函數的同時傳遞實際參數,這稱為按值函數調用。在這種情況下,實際參數的值被復制到形式參數。因此,對形式參數執行的操作不反映在實際參數中。 ## 函數按值調用的示例 如上所述,在按值調用時,實際參數被復制到形式參數,因此函數對參數執行的任何操作都不會影響實際參數。讓我們舉個例子來理解這個: ```c #include <stdio.h> int increment(int var) { var = var+1; return var; } int main() { int num1=20; int num2 = increment(num1); printf("num1 value is: %d", num1); printf("\nnum2 value is: %d", num2); return 0; } ``` 輸出: ```c num1 value is: 20 num2 value is: 21 ``` **說明** 我們在調用方法時傳遞變量`num1`,但由于我們使用按值調用方法調用函數,因此只將`num1`的值復制到形式參數`var`。因此,對`var`的更改不會反映在`num1`中。 ## 示例 2:使用按值函數調用交換數字 ```c #include <stdio.h> void swapnum( int var1, int var2 ) { int tempnum ; /*Copying var1 value into temporary variable */ tempnum = var1 ; /* Copying var2 value into var1*/ var1 = var2 ; /*Copying temporary variable value into var2 */ var2 = tempnum ; } int main( ) { int num1 = 35, num2 = 45 ; printf("Before swapping: %d, %d", num1, num2); /*calling swap function*/ swapnum(num1, num2); printf("\nAfter swapping: %d, %d", num1, num2); } ``` **輸出:** ```c Before swapping: 35, 45 After swapping: 35, 45 ``` **為什么變量在交換后仍保持不變?** 原因相同 - 函數由`num1`和`num2`的值調用。實際上`var1`和`var2`實際上是交換的(不是`num1`和`num2`)。在按值調用時,實際參數只是復制到形式參數中。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看