Lỗi khi truyền tham số vào hàm c++ năm 2024

Một điều khá quan trọng trong C đó là truyền tham chiếu và tham trị vào một phương thức [Function].

Truyền tham chiếu là truyền địa chỉ ô nhớ của biến, do đó khi thay đổi giá trị của biến bên trong phương thức thì giá trị của biến cũng bị thay đổi bên ngoài phương thức.

Truyền tham trị là truyền giá trị của biến [không phải là địa chỉ ô nhớ], khi đó phương thức sẽ tự động tạo ra một địa chỉ ô nhớ mới để lưu trữ giá trị này, do đó nó chỉ được thay đổi trong phương thức hiện hành và giá trị của biến không bị thay đổi bên ngoài phương thức hiện hành.

Hãy xem các ví dụ sau để hiểu rõ về truyền tham chiếu và truyền giá trị trong C.

include

void change[int num] {

num = num + 1;
} int main[] {
int x = 100;
printf["Truoc khi goi phuong thuc x = %d \n", x];
change[x]; // truyen tham tri vao phuong thuc
printf["Sau khi goi phuong thuc x = %d \n", x];
return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100 Sau khi goi phuong thuc x = 100

Trong ví dụ trên, giá trị của biến x không bị thay đổi bên ngoài phương thức change[], mặc dù bên trong phương thức change[] chúng ta đã cố gắng thay đổi bằng cách tăng m lên 1.

Trong C++ việc viết hàm để xử lí là rất thường xuyên, chúng ta thường truyền dữ liệu vào hàm theo 2 cách đó là truyền tham chiếu và tham trị.

1. Tham trị [pass by value]

Truyền tham trị là truyền cho đối số một bản sao.

  • Ví dụ:
    • include

      using namespace std; void changeValue[int x] {

       x = 2;  
      
      } int main[] {
       int x = 0;  
       changeValue[x];  
       cout

Chủ Đề