21. 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ị và tham chiếu vào các hàm để làm việc với dữ liệu. Trong trường hợp truyền tham trị, giá trị của biến được sao chép và truyền vào hàm. Trong trường hợp truyền tham chiếu, địa chỉ ô nhớ của biến được truyền vào hàm, cho phép bạn thay đổi giá trị của biến gốc từ bên trong hàm.

1. Truyền tham trị: Khi truyền tham trị, một bản sao của giá trị biến gốc được tạo ra và được sử dụng trong hàm. Thay đổi giá trị bên trong hàm không ảnh hưởng đến giá trị gốc.

c
#include <stdio.h>

void modifyValue(int x) {
    x = 10; // Thay đổi giá trị trong hàm, không ảnh hưởng đến biến gốc
}

int main() {
    int num = 5;
    printf("Giá trị trước khi gọi hàm: %d\n", num);
    modifyValue(num);
    printf("Giá trị sau khi gọi hàm: %d\n", num);

    return 0;
}

2. Truyền tham chiếu (bằng con trỏ): Khi truyền tham chiếu, bạn truyền địa chỉ ô nhớ của biến vào hàm thông qua con trỏ. Thay đổi giá trị thông qua con trỏ trong hàm ảnh hưởng trực tiếp đến biến gốc.

c
#include <stdio.h>

void modifyValue(int *ptr) {
    *ptr = 10; // Thay đổi giá trị thông qua con trỏ, ảnh hưởng đến biến gốc
}

int main() {
    int num = 5;
    printf("Giá trị trước khi gọi hàm: %d\n", num);
    modifyValue(&num);
    printf("Giá trị sau khi gọi hàm: %d\n", num);

    return 0;
}

Trong ví dụ trên, bạn có thể thấy rõ sự khác biệt giữa truyền tham trị và tham chiếu. Khi truyền tham trị, giá trị biến gốc không bị thay đổi bên trong hàm. Khi truyền tham chiếu, giá trị biến gốc bị thay đổi bên trong hàm thông qua con trỏ.

Leave a Comment

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

Scroll to Top