Mọi đối tượng dữ liệu trong C đều có kiểu xác định Biến có kiểu char, int, float, double, Con trỏ trỏ đến kiểu char, int, float, double, Xử lý thế nào khi gặp một biểu thức với nhiều | NHẬP MÔN LẬP TRÌNH CHUYỂN ĐỔI KIỂU DỮ LIỆU & CẤP PHÁT BỘ NHỚ ĐỘNG Nội dung Quản lý bộ nhớ Chuyển đổi kiểu (ép kiểu) 1 Cấu trúc CT C trong bộ nhớ 2 Cấp phát bộ nhớ động 3 Các thao tác trên khối nhớ 4 Nhu cầu chuyển đổi kiểu Mọi đối tượng dữ liệu trong C đều có kiểu xác định Biến có kiểu char, int, float, double, Con trỏ trỏ đến kiểu char, int, float, double, Xử lý thế nào khi gặp một biểu thức với nhiều kiểu khác nhau? C tự động chuyển đổi kiểu (ép kiểu). Người sử dụng tự chuyển đổi kiểu. Quản lý bộ nhớ Chuyển đổi kiểu tự động Sự tăng cấp (kiểu dữ liệu) trong biểu thức Các thành phần cùng kiểu Kết quả là kiểu chung int / int int, float / float float Ví dụ: 2 / 4 0, / Các thành phần khác kiểu Kết quả là kiểu bao quát nhất char Chuyển đổi kiểu tự động Phép gán = ; BT ở vế phải luôn được tăng cấp (hay giảm cấp) tạm thời cho giống kiểu với BT ở vế trái. Có thể làm mất tính chính xác của số nguyên khi chuyển sang số thực hạn chế! Quản lý bộ nhớ int i; float f = ; i = f; // f tạm thời thành int f = i; // i tạm thời thành float int i = 3; float f; f = i; // f = Chuyển đổi tường minh (ép kiểu) Ý nghĩa Chủ động chuyển đổi kiểu (tạm thời) nhằm tránh những kết quả sai lầm. Cú pháp Ví dụ Quản lý bộ nhớ int x1 = 1, x2 = 2; float f1 = x1 / x2; // f1 = float f2 = (float)x1 / x2; // f2 = float f3 = (float)(x1 / x2); // f3 = () Cấp phát bộ nhớ tĩnh và động Cấp phát tĩnh (static memory allocation) Khai báo biến, cấu trúc, mảng, Bắt buộc phải biết trước cần bao nhiều bộ nhớ lưu trữ tốn bộ nhớ, không thay đổi được kích thước, Cấp phát động (dynamic memory allocation) Cần bao nhiêu cấp phát bấy nhiêu. Có thể giải phóng nếu không cần sử dụng. Sử dụng vùng nhớ ngoài chương trình (cả bộ nhớ ảo . | NHẬP MÔN LẬP TRÌNH CHUYỂN ĐỔI KIỂU DỮ LIỆU & CẤP PHÁT BỘ NHỚ ĐỘNG Nội dung Quản lý bộ nhớ Chuyển đổi kiểu (ép kiểu) 1 Cấu trúc CT C trong bộ nhớ 2 Cấp phát bộ nhớ động 3 Các thao tác trên khối nhớ 4 Nhu cầu chuyển đổi kiểu Mọi đối tượng dữ liệu trong C đều có kiểu xác định Biến có kiểu char, int, float, double, Con trỏ trỏ đến kiểu char, int, float, double, Xử lý thế nào khi gặp một biểu thức với nhiều kiểu khác nhau? C tự động chuyển đổi kiểu (ép kiểu). Người sử dụng tự chuyển đổi kiểu. Quản lý bộ nhớ Chuyển đổi kiểu tự động Sự tăng cấp (kiểu dữ liệu) trong biểu thức Các thành phần cùng kiểu Kết quả là kiểu chung int / int int, float / float float Ví dụ: 2 / 4 0, / Các thành phần khác kiểu Kết quả là kiểu bao quát nhất char Chuyển đổi kiểu tự động Phép gán = ; BT ở vế phải