Khi các thuật ngữ "tham số hình thức" và "tham số thực" được sử dụng, chúng tương ứng với các định nghĩa dùng trong khoa học máy tính. Trong định nghĩa của một hàm, ví dụ:
- f(x) = x + 2,
x là một tham số hình thức. Khi hàm được dùng, ví dụ:
- y = f(3) + 5,
Giá trị 3 là tham số thực. Xem thêm trong lập trình hàm và các nguyên lí nền tảng, tích phân lambda và combinatory logic.
Có nhiều tác giả phân định sự khác nhau giữa tham số và đối số như sau: Tham số là các giá trị của các biến mà một hàm dùng tới trong các tính toán của nó, và khi một biến hay tham số đã được thay thế bằng các giá trị thực vào trong tính toán của một hàm thì giá trị đó trở thành đối số của hàm đó. Như vậy trong các xác định này thì "tham số hình thức" chính là "tham số" (tức là biến x như trong ví dụ trên), còn "tham số thực" chính là "đối số" (tức là giá trị 3)
2.1. Hàm trong C
Trong C chỉ có một cách truyền dữ liệu cho hàm theo giá trị:
+ Cấp phát vùng nhớ cho các đối.
+ Gán giá trị các tham số trong lời gọi hàm cho các đối sau đó hàm làm việc trên vùng nhớ của các đối chứ không lien quan gì đến các tham số.
Như vậy chương trình sẽ tạo ra các bản sao (các đối) của các tham số và hàm sẽ thao tác trên các bản sao này, chứ không làm việc trực tiếp với các tham số. Phương pháp này có 2 nhược điểm chính:
Tốn kém về thời gian và bộ nhớ vì phải tạo ra các bản sao. Không thao tác trực tiếp trên tham số, vì vậy không làm thay đổi giá trị các tham số
Vì vậy khi ta gọi hàm với tham số đã được gán giá trị của đối số thì khi đó hàm sẽ làm việc trên các bản sao của tham số mà không tác động vào tham số
vì vậy ta sẽ phải làm việc trên biến con trỏ chứ địa chỉ của tham số để tác động vào tham số trong hàm .
Không có nhận xét nào:
Đăng nhận xét