值傳遞和用實際引數替換表單引數有什麼區別?

發布 科技 2024-03-16
11個回答
  1. 匿名使用者2024-01-26

    呵呵,正好我上學期學了C++

    書中說:“C++中傳遞引數有三種方式:傳遞引數的值(稱為值傳遞,簡稱傳遞值),傳遞引數的位址(稱為位址傳遞,簡稱位址)和通過引用傳遞(簡稱傳遞引用),對應的函式呼叫也稱為值呼叫, 位址呼叫和引用呼叫。

    定義函式時,參數列中的引數稱為形式引數或形式引數。 函式呼叫時參數列中的引數稱為實際引數,稱為實際引數。 實引數和表單引數之間的資料傳輸稱為表體-實體組合。

    一般來說,C++語言是值呼叫,值呼叫是單向的,也就是說,乙個引數的值只能通過引數傳遞給表單引數,反之則不行。 換句話說,從被呼叫函式的角度來看,引數的值只能傳入,不能傳出。 引數可以是特定值、具有現有值的變數和可計算表示式,因為值和變數都是城市的一種表示式,因此,引數在傳遞值時本質上是表示式。

    呼叫函式時,系統首先表示引數的球值,然後將該值傳遞給引數。

    位址和參考的比較。 ”

    我的手很酸......至於引文,建議大家看一下相關書籍,要知道引文是傳送的,首先要知道引文是什麼

  2. 匿名使用者2024-01-25

    表單引數:全名"形式引數"它是定義函式名稱和函式體時使用的引數,用於接收呼叫函式時傳遞的引數。

    實際引數:全名"實際引數"它是在呼叫函式時傳遞函式的引數。

    引數和引數的型別必須相同,或者必須符合隱式轉換規則,當引數和引數不是指標型別時,函式執行時引數和引數必須相同。

    引數是不同的變數,它們位於記憶體中的不同位置,引數將是真實的。

    釋放引數內容的副本,在函式末尾釋放引數,引數內容不變。

    如果函式引數是指標型別變數,則為呼叫函式的過程。

    ,引數的位址被傳遞給函式,並且也在函式體內部使用。

    引數的位址,即引數本身。 所以在函式體內部。

    您可以更改引數的值。

    舉個很簡單的例子:

    intf(intb) *b 是表單引數*

    returnb;}

    main()

    inta=1;

    printf("%d",f(a));*a 是乙個真實的論點* 明白了嗎?

  3. 匿名使用者2024-01-24

    引數的型別和引數可以不同,但同時,它們可能會導致型別不匹配錯誤。

    呼叫函式時,將引數的值傳遞給引數,系統首先將引數的值隱式轉換為引數的型別,然後將值賦值給引數。

    引數和引數在數量、型別和順序上應嚴格一致,否則可能會出現型別不匹配錯誤。 變數或屬性型別不正確。 例如,除非整個字串可識別為整數,否則不能將具有整數值的變數分配給字串值。

    盡可能在相容的資料型別之間分配值。 例如,可以將整數分配給 long,將 single 分配給 double。

  4. 匿名使用者2024-01-23

    表單引數和實數引數之間的差異。

    引數出現在函式定義中,可以在整個函式中使用,但不能在函式外部使用。

    引數出現在音調功能中,進入調製功能後無法使用引數。

    表單和實際引數的功能是傳輸資料。 當呼叫函式時,調函式將實數引數的值傳遞給調製函式的形狀引數,從而將調函式的資料傳輸到調製函式。

    1.引數變數僅在呼叫記憶體單元時分配記憶體單元,並且在呼叫結束時,分配的記憶體單元立即釋放。 因此,引數僅在函式內部有效。 函式呼叫完成後,鍵函式無法再使用。

    2.引數可以是常量、變數、表示式、函式等,無論它們是什麼型別的量,在進行函式呼叫時都必須具有確定的值,以便將這些值傳遞給引數。 因此,應預先分配和輸入引數以獲得確定的值。

    3.引數與引數在數量、型別、順序上應嚴格一致,否則會出現“型別不匹配”的錯誤。

    4.函式呼叫中發生的資料傳輸是單向的。 也就是說,引數的值只能傳遞給引數,而引數的值不能反向傳遞給引數。 因此,在函式呼叫期間,引數的值會更改,但引數的值不會更改。

    5.當引數和引數不是指標型別時,當函式執行時,引數和引數是不同的變數,它們位於記憶體中的不同位置,引數複製引數的內容,引數在函式末尾釋放,引數不更改。

    但是,如果函式的引數是指標型別變數,則在呼叫函式的過程中,將引數的位址傳遞給函式,並且引數的位址也在函式體內部使用,即使用引數本身。 因此,在函式體內部,可以更改引數的值。

  5. 匿名使用者2024-01-22

    如果位址中引數的值發生了變化,則呼叫函式的引數也會發生變化,函式的引數引數不會發生變化。

    綜上所述,只有 b 是位址,所以 b 在函式體中執行 b=2+1=3,所以輸出這個結果。

  6. 匿名使用者2024-01-21

    傳遞位址,即表單引數是引用或指標,以便可以更改傳遞的引數的值。 這就是區別。

  7. 匿名使用者2024-01-20

    沒有詳細的過程。

    a) 不要通過定義函式內部和外部同名的變數來混淆自己,這對您的理解不利。

    b) 對於 byref 引數,引入 b+1 引數應該是錯誤,錯誤行為下結果是不可預測的,應該是編譯器的bug

  8. 匿名使用者2024-01-19

    區別在於形式在函式中的位置,兩者的區別如下:

    首先,主題不同。

    1.引數:呼叫帶引數的函式時,函式名後括號內的引數為“實際引數”。

    2.表單引數:非實際變數,又稱虛擬變數。

    二是目的不同。

    1.引數:它們可以是常量、變數或表示式,無論它們是什麼型別的引數,它們在呼叫函式時都必須具有確定的值,以便這些值可以傳遞給引數。

    2.引數:定義函式名和函式體時使用的引數,其目的是接收呼叫函式時傳入的引數。

    第三,特點不同。

    1.引數:在呼叫函式的過程中,系統會將引數的值傳遞給被呼叫函式的格式引數。 換句話說,form 引數從實際引數中獲取值。 該值在函式呼叫的持續時間內有效,可以參與函式中的操作。

    2. 表單引數:表單引數的本質是乙個名稱,不占用記憶體空間。

  9. 匿名使用者2024-01-18

    存在以下差異:1.主體不同:呼叫引數時,函式名稱後括號內的引數為“實際引數”。 引數不是實際變數,也稱為虛擬變數。

    2.用途不同:引數可以是常量、變數或表示式,無論引數是什麼型別的量,在進行函式呼叫時都必須有確定的值,以便這些值可以傳遞到引數中。

    需要注意的是,當引數和引數不是指標型別時,函式執行時,引數和引數是不同的變數,它們位於記憶體中的不同位置,引數會複製引數的內容,引數在函式末尾釋放, 而引數不會改變。

  10. 匿名使用者2024-01-17

    例如,f(x) = 2x + 10f(x) 是返回值,x 是形式引數,當您為 x 賦值 5 時,引數為 5,當賦值為 10 時,引數為 10

    因此,一般來說,真正的論點是,在呼叫函式時,基本上只有一種方法可以將引數傳遞給表單引數,即傳遞值。

    定址和引用都是價值的概念轉換,例如

    void calc(int * ptr);

    呼叫時,它表面上是乙個位址,但對於 ptr 引數,它的值被初始化為實數引數,因此它是傳遞。

    理解這一點的最基本方法是,從記憶體的角度來看,給變數賦值無非是在記憶體中的某個地方寫入乙個值,所以你需要注意目標記憶體是否被更改。 例如,當你把乙個值寫到指標引數指向的記憶體時,你寫的就是引數指向的記憶體,這就是定址的本質。

  11. 匿名使用者2024-01-16

    下面是乙個簡單的示例:

    int func(int a, int b),其中 a 和 b 是形式引數,a 和 b 的值是未知的。

    呼叫時,例如: fun(5,6),其中 a = 5 , b = 6 ,其中 5 和 6 是函式 func 的實引數,表示實值,而不是由名稱引用,則該函式將變為:

    fun(5,6)

    在函式中,a 的值被替換為 5,b 的值被替換為 6。

    由於它是乙個形式引數,因此 a 的值可以是任意整數值,b 的值也可以是任意整數值(這裡不考慮一些數值邊界)。 所以你寫了乙個func函式,你可以將::應用於所有二項式加法

    5+6 func(5,6)

    11+22 func(11,22)

    13 + 43 func (-13,43) 這樣說,你應該能夠大致理解實引數和形式引數的區別。

    至於引數傳遞的方式,在C++中,一般分為改變引數值的轉移(指標、引用)和不改變引數值的轉移(傳遞值)。

相關回答
26個回答2024-03-16

現代資訊傳播更快、更廣泛、更方便、更簡單,古代資訊傳播只能在視覺範圍內進行,如孔明燈籠、烽火台等都是用光傳輸的。 >>>More

14個回答2024-03-16

多問題,提高率。

你如何獲得財富? >>>More

11個回答2024-03-16

經驗值、數字和費率共同決定了您的等級; 經驗值只會增加,而不是減少。 >>>More

17個回答2024-03-16

圖書館的積分分為兩部分:經驗值和財富值。 經驗值是根據你在庫中的行動獲得的,同時,經驗值決定了你在庫中的等級,隨著經驗值的增加,你也會進步並獲得更高的頭銜。 財富是通過您對圖書館的高質量貢獻而獲得的,目前圖書館的財富可用於圖書館**文件。 >>>More

9個回答2024-03-16

總結。 相關資訊:電腦藍芽可以連線手機,如果是台式機,就需要有藍芽介面卡; 如果是膝上型電腦,現在的都有藍芽裝置; 電腦藍芽連線手機的操作如下: >>>More