Método de passagem de parâmetros de linguagem de programação

Método de passagem de parâmetros de linguagem de programação

Tomando C++, Java, Python e JavaScript como exemplos para apresentar métodos de transferência de parâmetros de linguagem de programação

★Método de passagem de parâmetros em C++:

Passagem por valor: este é o método de passagem padrão para parâmetros de função C++. Neste caso, a função recebe uma cópia do valor do parâmetro, em vez do próprio parâmetro - o valor real do parâmetro é copiado no parâmetro formal. Portanto, quaisquer modificações nos parâmetros da função não afetarão os parâmetros originais.

Passagem por referência: Em C++, os parâmetros podem ser passados ​​por referência. Neste caso, a função recebe uma referência ao parâmetro em vez de uma cópia do valor. Isso significa que qualquer modificação nos parâmetros da função afetará os parâmetros originais. Em C não há passagem por referência, mas um efeito semelhante pode ser alcançado com ponteiros.

Passagem por ponteiro: Em C++, os parâmetros podem ser passados ​​​​por meio de ponteiros. Neste caso, a função recebe um ponteiro para o argumento. O valor do parâmetro original pode ser modificado através deste ponteiro dentro da função.

Exemplo:

#include <iostream>
using namespace std;

void passByValue(int num) {
    num = 10;  // 修改形参的值
}

void passByReference(int& num) {
    num = 10;  // 修改原始参数的值
}

int main() {
    int num1 = 5;
    int num2 = 5;

    passByValue(num1);
    cout << "After passByValue, num1 = " << num1 << endl;  // 输出 5

    passByReference(num2);
    cout << "After passByReference, num2 = " << num2 << endl;  // 输出 10

    return 0;
}

Em linguagens de programação como Java, Python e JavaScript, a passagem de parâmetros é por valor, ou seja, é passada uma cópia do parâmetro.

★Método de passagem de parâmetros Java:

A única maneira de passar parâmetros em Java é por valor. Tanto os tipos de dados básicos quanto os tipos de referência são passados ​​por valor. 1) Para tipos de dados básicos (como inteiros, números de ponto flutuante, valores booleanos, etc.), a função recebe uma cópia do valor e as modificações na cópia dentro do método (função) não afetarão o valor original. 2) Para tipos de referência (como objetos, arrays, etc.), a função recebe uma cópia da referência do objeto, ou seja, uma cópia do endereço. Isso significa que modificações na referência dentro do método (função) afetarão o objeto original.

Exemplo:

public class demoA {

    public static void passByValue(int num) {
        num = 10;  // 修改形参的值
    }

    public static void passByReference(int[] arr) {
        arr[0] = 10;  // 修改原始参数的值
    }

    public static void main(String[] args) {
        int num1 = 5;
        int[] arr = {5};

        passByValue(num1);
        System.out.println("After passByValue, num1 = " + num1);  // 输出 5

        passByReference(arr);
        System.out.println("After passByReference, arr[0] = " + arr[0]);  // 输出 10
    }
}

★Método de passagem de parâmetro Python:

Na verdade, o método de passagem de parâmetros em Python é unificado, e todos são passados ​​​​por valor, e o que é passado é uma cópia do parâmetro. Em python, os parâmetros são passados ​​por valor - uma cópia é passada. 1) Quando um tipo de dados básico (como número inteiro, número de ponto flutuante, valor booleano, etc.) é passado para uma função como parâmetro, uma cópia do valor é na verdade passada para a função. As modificações na cópia dentro da função não afetarão o valor original. 2) Quando um tipo de referência (como lista, dicionário, etc.) é passado para uma função como parâmetro, uma cópia da referência (endereço) do objeto é passada. Isto significa que modificações na referência dentro da função afetarão o objeto original.

Exemplo:

def pass_by_value(num):
    num = 10  # 修改形参的值

def pass_by_reference(arr):
    arr[0] = 10  # 修改原始参数的值

num1 = 5
arr = [5]

pass_by_value(num1)
print("After pass_by_value, num1 =", num1)  # 输出 5

pass_by_reference(arr)
print("After pass_by_reference, arr[0] =", arr[0])  # 输出 10

★ Métodos e características de passagem de parâmetros JavaScript:

Em JavaScript, os parâmetros são passados ​​por valor – uma cópia é passada. 1) Quando um tipo de valor (como número, string, booleano, etc.) é passado para uma função como parâmetro, uma cópia do valor é na verdade passada para a função. As modificações na cópia dentro da função não afetarão o valor original. 2) Quando um tipo de referência (como um objeto, array, etc.) é passado para uma função como parâmetro, uma cópia da referência (endereço) do objeto é passada. Isto significa que modificações na referência dentro da função afetarão o objeto original, o que pode criar a ilusão de que o JavaScript é passado por referência.

Exemplo

function passByValue(num) {
    num = 10;  // 修改形参的值
}

function passByReference(obj) {
    obj.name = "John";  // 修改原始参数的属性值
}

let num1 = 5;
let obj = { name: "Alice" };

passByValue(num1);
console.log("After passByValue, num1 =", num1);  // 输出 5

passByReference(obj);
console.log("After passByReference, obj.name =", obj.name);  // 输出 "John"

OK!

Acho que você gosta

Origin blog.csdn.net/cnds123/article/details/132981086
Recomendado
Clasificación