Các phương pháp truyền tham số trong C++

0

Giới thiệu về truyền tham số

Trong các bài viết trước ad đã nói đến cách sử dụng và 2 cách truyền tham số cho hàm, trong bài viết này ad sẽ nói chi tiết hơn về hai cách truyền tham số này để bạn có thể hiểu và áp dụng thuần thục hơn trong các chương trình sau này.

Cách khai báo và định nghĩa hàm trong C++

Hàm là gì trong C++

Các Phương Pháp đối với C++ để truyền tham số vào hàm

Có 2 cách truyền tham số cho hàm

  • Truyền theo kiểu truyền tham trị
  • Truyền theo kiểu truyền tham chiếu

truyền tham số

Phương pháp 1: Truyền theo kiểu tham trị

Đơn giản để hiểu thì truyền tham trị chính là truyền vào đó giá trị tương ứng của tham số.

Khi một hàm được chương trình gọi đến thì chương trình sẽ lập tức cấp phát các ô nhớ cho các tham số được truyền vào của hàm rồi tiến hành sao chép giá trị vào các ô nhớ mới vừa được tạo và khi bạn thực hiện thì chỉ thực hiện với các số nằm trong ô nhớ nên sẽ không ảnh hưởng đến số được truyền vào ban đầu.

Các bạn hãy cùng ad xét các ví dụ sau đây để hiểu rõ hơn:

Chương trình tính tổng 2 số:


#include <iostream>
using namespace std;

int sum(int x, int y)
{
return (x+y);
}

int main()
{
int x = 3, y = 2;
int tong;
tong = sum(x, y); // Gán giá trị là tổng x và y cho biến tong;
cout << "Tong của x va y: " << tong<< endl;
return 0;
}

Đây là một ví dụ điển hình cho cách truyền tham trị

Chúng ta sẽ cùng xét một ví dụ khác:


#include <iostream>
using namespace std;
void swap(int x, int y)
{
int tamp = x;
x = y;
y = tamp;
}

int main()
{
int x = 2, y = 3;
cout << "cac so truoc khi hoan doi: " << x << ' ' << y << endl;;
swap(x, y); // giai đoạn hoán đổi số
cout << "cac so sau khi hoan doi: " << x << ' ' << y<< endl;
return 0;
}

Chương trình trên thực hiện hoán đổi giá trị của 2 số với nhau, sau khi thực hành thì bạn có thể thấy kết quả không thay đổi, vì nó thực hiện trên ô nhớ chứ không thực hiện ở giá trị gốc, do vậy không dùng được cách truyền tham trị với bài toán trên.

Phương pháp 2: Truyền theo kiểu tham chiếu

Khác với truyền tham trị, các số truyền vào kiểu tham chiếu sẽ được thay đổi trong quá trình chương trình chạy, chúng ta vẫn tiếp tục xét bài toán trên


#include <iostream>
using namespace std;
void swap(int &a, int &b)
{
int tamp = a;
a = b;
b = tamp;
}

int main()
{
int a = 2, b = 3;
cout << "Truoc khi hoan doi: " << a << ' ' << b << endl;;
swap(a, b); // hoán đổi
cout << "Sau khi hoan doi: " << a << ' ' << b << endl;
return 0;
}

Các bạn có thể thấy kết quả đã khác 🙂

AD sẽ cập nhật một bài viết về KIỂU THAM CHIẾU sau nhé, dạo này bận quá chưa viết được bài

Leave A Reply

Your email address will not be published.