Bài giảng Ngôn ngữ lập trình C Chương 4: Hàm trình bày về khái niệm hàm, khai báo hàm, lời gọi hàm, nguyên tắc hoạt động của hàm, truyền theo giá trị, phạm vi của biến, hàm kiểu void, truyền theo địa chỉ, khi nào sử dụng đối là con trỏ, dùng hàm có giá trị trả về hay hàm kiểu void, nguyên mẫu hàm.
CHƯƠNG 4: HÀM • Nội dung Khái niệm hàm Khai báo hàm Lời gọi hàm Nguyên tắc hoạt động hàm Truyền theo giá trị Phạm vi biến Hàm kiểu void Truyền theo địa Khi sử dụng đối trỏ Dùng hàm có giá trị trả hay hàm kiểu void Nguyên mẫu hàm • • • • • • • • Khái niệm hàm Hàm đoạn chương trình thực trọn vẹn cơng việc định Nó chia cắt cơng việc lớn thành công việc nhỏ Điều quan trọng hàm giúp để làm lại làm trước thay phải đầu chức dùng nhiếu lần đoạn chương trình Khai báo hàm Cách viết khai báo hàm sau: () { return } • Trong đó: Kiểu hàm kiểu liệu (char, int, float, double, …) kiểu void Tên hàm bắt buộc phải có hàm Danh sách đối số (còn gọi tham số hình thức) có khơng tùy thuộc ta định dùng hàm làm Phần bao dấu ngoặc {} gọi thân hàm, dấu {} bắt buộc hàm Khi cần thêm số biến ta cần khai báo thêm Các biến gọi biến cục riêng hàm sử dụng Phần câu lệnh thực nhiệm vụ hàm Câu lệnh return có khơng, kiểu hàm khơng phải void bắt buộc phải có Câu lệnh có nhiệm vụ trả giá trị cho nơi gọi hàm • • Lời gọi hàm Hàm sử dụng thông qua lời gọi tới Cách viết lời gọi hàm sau: () Số tham số thực phải số đối số Kiểu tham số thực phải phù hợp với kiểu đối tương ứng Nguyên tắc hoạt động hàm Cấp phát nhớ cho đối số biến cục Gán giá trị tham số thực cho đối tương ứng Thực câu lệnh thân hàm Khi gặp câu lệnh return dấu “}” cuối thân hàm máy giải phóng đối, biến cục thóa khỏi hàm • • • • • • • • • • • • • • • Ví dụ 1: Hàm Max() sau trả giá trị lớn hai số thực float Max(float x, float y) { float res; //Khai báo thêm biến cục if(x > y) res = x; else res = y; return res; } void main() { float a = 3.6, b = 7.2; float max; max = Max(a, b); /* Lời gọi hàm Max() với hai tham số thực a b*/ } Truyền theo giá trị Trong cách truyền này, thay đổi vế mặt giá trị đối số hàm không làm thay đổi giá trị tham số thực tương ứng lời gọi hàm • • • • • • • • • • • • • void HoanVi(float a, float b) { float tam; tam = a; a = b; b = tam; } void main() { float x = 3.5, y = 7.6; HoanVi(x, y); /*Lời gọi hàm HoanVi() với hai tham số thực x y*/ ; //x y không bị thay đổi } Phạm vi biến Trong ví dụ ta thấy hàm main() có biến i hàm LuyThua() có biến i, khơng có ảnh hưởng phạm vi chúng khác Biến i khai báo main() gọi biến cục main(), có tác dụng main() khơng thể tác động bên ngồi main() Tương tự hàm LuyThua() Điều quan trọng cần nhớ biến khai báo hàm (biến cục bộ) tồn hàm gọi tới mà thơi, biến hàm gọi thực xong Bên cạnh biến cục cịn có biến nằm ngồi hàm gọi biến tồn cục, biến sử dụng nơi chương trình tồn suốt thời gian chương trình thực • • • • • • • • • • • • Hàm kiểu void Khi hàm không trả giá trị nào, hàm gọi hàm kiểu void Ví dụ: void In(int x, int y) { printf(“%d, %d\n”, x, y); } void main() { int i; for(i = 1; i