Tải bản đầy đủ (.pdf) (4 trang)

Ép kiểu trong C | 64 bài học lập trình C hay nhất PDF ep kieu trong c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (202.04 KB, 4 trang )


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 



 

Ép kiểu trong C
Ép kiểu là cách để chuyển đổi một biến từ kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ,
khi bạn muốn lưu trữ một giá trị long cho một số số nguyên, bạn phải ép kiểu long thành int.
Bạn có thể chuyển đổi giá trị từ một kiểu này sang một kiểu khác sử dụng toán tử ép
kiểunhư sau:
(ten-kieu) bieu_thuc

Xem xét ví dụ sau mà toán tử ép kiểu làm cho phép chia một biến nguyên được thực hiện
như là một hoạt động dấu chấm động:
#include <stdio.h> main() {
int sochia = 32, sobichia = 6;
double kq;
kq = (double) sochia / sobichia;
printf("Gia tri cua kq la: %f\n", kq );
printf("\n===========================\n");
printf("VietJack chuc cac ban hoc
tot! \n");
}

Khi thực hiện đoạn code, kết quả sau đây được in ra, biến kq có kiểu double:
Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:

Nên ghi nhớ rằng ở đây toán tử ép kiểu có quyền ưu tiên hơn phép chia, vì thế giá trị
củasochia đầu tiên được biến đổi sang kiểu double và cuối cùng nó thực hiện chia bởi tính
toán trong trường giá trị double.
Biến đổi kiểu có thể là được ẩn đi tức là được thực hiện tự động bởi bộ biên dịch, hoặc nó
có thể được xác định một cách rõ ràng bởi sử dụng toán tử ép kiểu. Nó là tốt cho bạn nên
sử dụng toán tử ép kiểu ở bất cứ đâu mà cần biến đổi kiểu.


Sự nâng cấp số nguyên trong C
Sự

nâng

cấp

số

nguyên



quá

trình



các

giá

trị

của

số


nguyên nhỏ

hơn int hoặcunsigned int chuyển đổi thành kiểu int hoặc unsigned int. Giả sử bạn có ví
dụ về việc thêm một ký tự vào một số int:


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí
 


 



 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 


 
#include <stdio.h> main() {
int i = 21;
char c = 'c'; /* Gia tri ASCII
la 99 */
int tong;

tong = i + c;
printf("Gia tri cua tong la: %d\n",
tong );
printf("\n===========================\n");
printf("VietJack
chuc cac ban hoc tot! \n");
}

Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:

Ở đây, giá trị của biến tong là 120 bởi vì trình biên dịch thực hiện sự nâng cấp số nguyên
và chuyển đổi giá trị 'c' thành ACII trước khi thực hiện phép toán thêm.

Phép chuyển đổi số học thông thường
Phép chuyển đổi số học thông thường là cách ép kiểu giá trị của nó thành một kiểu
thường dùng. Trình biên dịch đầu tiên sẽ thực hiện nâng cấp số nguyên, nó chuyển đổi từ
thấp đến cao, dưới đây là thứ bậc:


 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí

 


 



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 Copyright
 ©
 vietjack.com
 


 

Phép chuyển đổi số học thông thường không được thực hiện cho các toán tử gán, cho các
toán tử logic: && và ||. Chúng ta theo dõi ví dụ sau để hiểu khái niệm này:
#include <stdio.h> main() {
int i = 21;
char c = 'c'; /* Gia tri ASCII
la 99 */
float tong;
tong = i + c;
printf("Gia tri cua tong la:
%f\n", tong );
printf("\n===========================\n");
printf("VietJack chuc cac ban hoc tot! \n"); }

Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:

 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Trang
 chia
 sẻ
 các

 bài
 học
 online
 miễn
 phí
 


 



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 


 

Ở đây, cách đơn giản để hiểu là đầu tiên giá trị c chuyển thành số nguyên, nhưng bởi vì giá
trị cuối cùng là double, vì thế phép chuyển đổi số học thông thường áp dụng và bộ biên
dịch biến đổi i và c thành kiểu float và lấy kết quả phép cộng chuyển sang kiểu float.


 


 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học

 online
 miễn
 phí
 


 



×