43 lượt xem

Đối số là gì? Tham số và đối số khác nhau như thế nào?

1. Đối số là gì?

Đối số có tên tiếng anh là Argument là giá trị truyền vào khi gọi hàm. Một đối số được tham chiếu đến các giá trị được truyền trong một hàm và các giá trị này thường là nguồn của hàm yêu cầu các đối số trong quá trình thực thi.

Trong hàm được gọi, các giá trị này sẽ được gán cho các biến trong định nghĩa. Loại của các giá trị được truyền vào trong hàm sẽ giống với loại của các biến được xác định trong định nghĩa hàm tạo tình nhất quán và phù hợp. Chúng được gọi là đối số thực tế hoặc tham số thực tế. Giữa đối số và tham số khi gọi hàm phải có kiểu giữ liệu phù hợp.

Ví dụ: Với một hàm cho trước. Gọi hàm sum() cho hai số cần cộng.

Trong ví dụ này, hai số cần cộng đó sẽ được gọi là các đối số và chuyển vào Sum() khi nó được gọi từ một nơi khác.

Trong ngôn ngữ lập trình C++ sẽ hỗ trợ cho chúng ta nhiều kiểu truyền đối số khác nhau tương ứng với mỗi kiểu khai báo tham số khác nhau mà chắc chắn những người lập trình, IT cần nắm vững:

  • Thứ nhất, truyền đối số là giá trị (Call by value). Biến x và y được khai báo làm tham số của hàm add (hàm giá trị) đóng vai trò như là biến cục bộ hoạt động bên trong hàm này. Vì thế, tại thời điểm kết thúc phiên làm việc của hàm, các biến tham số này sẽ bị hủy và những giá trị được truyền vào không còn tồn tại.
  • Thứ hai, truyền đối số là tham chiếu. Truyền đối số là tham chiếu (Call by reference) tức là truyền cho đối số một bản sao, nghĩa là giá trị của biến đó sẽ được sao chép sang biến tham số truyền vào hàm.
  • Thứ ba, truyền đối số là địa chỉ. Truyền địa chỉ cho hàm( Passing arguments by address) là truyền địa chỉ của biến đối số chứ không phải giá trị biến đối số. Vì đối số là một địa chỉ, tham số hàm phải là một con trỏ. Sau đó, hàm có thể truy cập hoặc thay đổi giá trị được trỏ đến.
Xem thêm  Spotlight là gì? Chiếm spotlight có ý nghĩa gì

Như vậy, giữa đối số và tham số có quan hệ mật thiết và gắn bó với nhau. Đây là 2 thuật ngữ gắn chặt trong ngôn ngữ lập trình, vậy tham số và đối số khác nhau như thế nào?

2. Tham số và đối số khác nhau như thế nào?

Tham số và đối số có sự gắn bó mật thiết, có độ tương thích cao và đảm bảo rằng kiểu giữ liệu giữa tham số và đối số phải có sự phù hợp với nhau. Vậy tham số và đối số khác nhau như thế nào? Để tìm hiểu rõ được điều này, trước tiên chúng ta cần phải biết tham số là gì?

2.1. Tham số là gì?

Tham số có tên tiếng anh là parameter là những biến được khai báo trong việc khai báo trong một hàm (function declaration). Tham số giữ vai trò tiếp nhận giá trị đầu vào cho hàm số mỗi khi hàm số đó được gọi.

Các tham số trong nguyên mẫu hàm được áp dụng đối với quá trình thực thi hàm mà nó được định nghĩa.Tham số sử dụng để nhận các đối số được truyền trong quá trình gọi hàm. Chúng được gọi là đối số chính thức hoặc tham số chính thức.

Hàm là một nhóm các câu lệnh cùng nhau thực hiện một nhiệm vụ. Mọi chương trình C đều có ít nhất một hàm, đó là hàm main() và tất cả các chương trình tầm thường nhất đều có thể định nghĩa các hàm bổ sung.

Xem thêm 

Bạn có thể chia mã của mình thành các chức năng riêng biệt. Cách bạn phân chia mã của mình giữa các chức năng khác nhau là tùy thuộc vào bạn, nhưng về mặt logic, việc phân chia sao cho mỗi chức năng thực hiện một nhiệm vụ cụ thể.

Một khai báo hàm cho trình biên dịch biết về tên, kiểu trả về và các tham số của hàm. Định nghĩa hàm cung cấp phần thân thực của hàm.

Thư viện chuẩn C cung cấp nhiều chức năng tích hợp sẵn mà chương trình của bạn có thể gọi. Ví dụ: strcat() để nối hai chuỗi, memcpy() để sao chép một vị trí bộ nhớ sang một vị trí khác và nhiều chức năng khác.

Một chức năng cũng có thể được gọi là một phương thức hoặc một thủ tục con hoặc một thủ tục, v.v.

2.2. Sự khác nhau của tham số và đối số:

Vậy tham số và đối số khác nhau như thế nào?

  • Thứ nhất, trong lĩnh vực toán học ta có thể thấy sự khác nhau giữa tham số và một đối số của hàm là: tham số (parameter) là các ký hiệu thuộc phần định nghĩa của hàm. Còn các đối số (argument) là các ký hiệu được cung cấp cho hàm (function declaration) khi nó được dùng.
  • Thứ hai, phân biệt đối số và tham số trong ngôn ngữ lập trình C/C++ của tin học:

+ Khi một hàm được gọi, đối số là các giá trị được truyền trong quán trình gọi. Còn tham số là các giá tị xác định tại thời điểm nguyên mẫu hàm hoặc định nghĩa hàm được gọi.

Xem thêm  Assessment là gì? Các thuật ngữ liên quan đến assessment

+ Đối số được sử dụng trong câu lệnh gọi hàm để nhằm mục đích gửi giá trị từ hàm gọi đến hàm nhận. Còn đối với tham số, chúng được sử dụng trong tiêu đề của hạm được gọi để nhận giá trị từ các đối số. Tham số chính là đầu lọc nhận kết nối từ các đối số.

+ Trong thời gian gọi, mỗi đối số sẽ được gán cho một tham số trong định nghĩa hàm. Còn tham số là các biến cục bộ được gán giá trị của những đối số khi hàm được gọi.

+ Đối số trong hàm còn được gọi là tham số thực tế, còn tham số được gọi là tham số chính thức.

Để làm rõ hơn về sự khác biệt này, dưới đây là ví dụ mô phỏng để người đọc dễ dàng theo dõi:

Ví dụ về đối số: Sử dụng giá trị giả về làm đối số, ta có:

Ví dụ về tham số: Dưới đây là ví dụ về về hàm với số lượng tham số khác nhau:

Ví dụ về việc tham số và đối số làm việc cùng nhau:

Khi hàm printValues ​​được gọi với các đối số 6 và 7, tham số x của printValues được tạo và khởi tạo với giá trị 6 và tham số y của printValues được tạo và khởi tạo với giá trị 7.

3. Bài tập cụ thể về tham số và đối số:

Bài tập 1: Hãy thiết lập hàm power(a, b, c) với a, b, c là các số nguyên. Hàm trả lại giá trị (a+b)c

Chào mừng bạn đến với PRAIM, - nền tảng thông tin, hướng dẫn và kiến thức toàn diện hàng đầu! Chúng tôi cam kết mang đến cho bạn một trải nghiệm sâu sắc và tuyệt vời về kiến thức và cuộc sống. Với Praim, bạn sẽ luôn được cập nhật với những xu hướng, tin tức và kiến thức mới nhất.