Bỏ qua để đến nội dung

Tham số (Parameter) và đối số (Argument)

  • Tham số (parameter): biến được khai báo trong định nghĩa hàm
  • Đối số (argument): giá trị thực tế được truyền vào khi gọi hàm
// a và b là THAM SỐ
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3); // 5 và 3 là ĐỐI SỐ
return 0;
}

Mỗi tham số phải khai báo kiểu dữ liệu

Phần tiêu đề “Mỗi tham số phải khai báo kiểu dữ liệu”

Mỗi tham số trong C++ bắt buộc phải có kiểu dữ liệu riêng, kể cả khi nhiều tham số cùng kiểu:

// Đúng: phải lặp lại kiểu cho từng tham số
int add(int a, int b, int c) {
return a + b + c;
}
// SAI: không thể gộp kiểu như thế này
// int add(int a, b, c) { ... } // LỖI BIÊN DỊCH

Số lượng đối số phải khớp với tham số

Phần tiêu đề “Số lượng đối số phải khớp với tham số”
int add(int a, int b) {
return a + b;
}
int main() {
add(1, 2); // OK
// add(1); // LỖI: thiếu đối số
// add(1, 2, 3); // LỖI: thừa đối số
return 0;
}

(Trừ khi hàm có tham số mặc định hoặc dùng overloading - sẽ học ở các bài sau.)

Đối số phải đúng kiểu (hoặc chuyển đổi được)

Phần tiêu đề “Đối số phải đúng kiểu (hoặc chuyển đổi được)”
int add(int a, int b) {
return a + b;
}
int main() {
std::cout << add(2, 3) << std::endl; // 5
std::cout << add(2.9, 3.9) << std::endl; // 5 (double bị cắt về int: 2 + 3)
return 0;
}
  • Tham số là biến khai báo trong định nghĩa hàm; đối số là giá trị thực tế truyền vào khi gọi
  • Mỗi tham số phải khai báo kiểu dữ liệu riêng biệt, không thể gộp chung
  • Số lượng và kiểu đối số phải khớp với khai báo tham số (trừ trường hợp có giá trị mặc định hoặc overloading)