18. Truyền tham chiếu và tham trị trong ngôn ngữ lập trình C++

Trong ngôn ngữ lập trình C++, bạn có thể truyền tham trị (by value) hoặc truyền tham chiếu (by reference) khi gọi hàm. Cả hai cách này có cách hoạt động khác nhau và được sử dụng để truyền tham số từ chương trình chính vào hàm.

  1. Truyền tham trị (By Value):
    • Khi truyền tham trị, một bản sao của giá trị tham số gốc được tạo ra và chuyển cho hàm. Thay đổi giá trị trong hàm sẽ không ảnh hưởng đến giá trị gốc.
    • Truyền tham trị thường được sử dụng cho các kiểu dữ liệu cơ bản như int, float, char, …

Dưới đây là ví dụ truyền tham trị:

cpp
#include <iostream>

void modifyValue(int x) {
    x = x * 2;
}

int main() {
    int num = 5;
    std::cout << "Giá trị trước khi gọi hàm: " << num << std::endl;
    
    modifyValue(num);
    
    std::cout << "Giá trị sau khi gọi hàm: " << num << std::endl;

    return 0;
}
  1. Truyền tham chiếu (By Reference):
    • Khi truyền tham chiếu, bạn truyền tham số bằng cách đưa địa chỉ của biến vào hàm. Bất kỳ thay đổi nào đối với biến trong hàm cũng ảnh hưởng đến biến gốc.
    • Truyền tham chiếu thường được sử dụng khi bạn muốn thay đổi giá trị của biến trong hàm.

Dưới đây là ví dụ truyền tham chiếu:

cpp
#include <iostream>

void modifyValue(int &x) {
    x = x * 2;
}

int main() {
    int num = 5;
    std::cout << "Giá trị trước khi gọi hàm: " << num << std::endl;
    
    modifyValue(num);
    
    std::cout << "Giá trị sau khi gọi hàm: " << num << std::endl;

    return 0;
}

Trong ví dụ trên, khi chúng ta truyền biến num vào hàm modifyValue bằng tham chiếu, thay đổi giá trị của num trong hàm cũng thay đổi giá trị của biến num trong hàm main.

Lựa chọn giữa truyền tham trị và truyền tham chiếu phụ thuộc vào mục tiêu của bạn và cách bạn muốn tương tác với dữ liệu trong hàm.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top