30/09/2018, 18:44
Char là kiểu ký tự hay int vậy mọi người?
Hôm nay mình có thấy thầy bảo char không phải là kiểu ký tự mà là kiểu int mình không tin lắm tìm trên gg cũng k có nên ai biết chỉ mình với
Bài liên quan
Char là kiểu int 1byte (signed char từ -128 -> 127, còn unsigned char từ 0->255). Khi bạn dùng printf để in ra 1 kí tự, bạn phải sử dụng %c ví dụ:
char c=‘a’;
printf("%c",c) thì kết quả sẽ in ra chữ a
còn bạn dùng printf("%d",c) thì sẽ in ra số 65 tương ứng với mã ASCII của nó.
Char viết tắt của character rồi thì int làm sao được nhỉ?
Có thể là vì người ta printf được char ra số nên đã hiểu sai về mặt bản chất của nó mà thôi…
Ý mình nó là int hay Ký tự đó bạn
ấy mình trả lời nhầm
char là kiểu kí tự mà bạn
char
đúng là một số nguyên 1 byte.Vì sao nó lại biểu diễn ký tự?
Đơn giản là 1 ký tự được biểu diễn bởi một số nguyên 1 byte (bảng mã ASCII).
Nên khi bạn định nghĩa
char c = 'a';
là bạn đang gán 1 số nguyên 97 (biểu diễn của ký tự ‘a’ trong bảng ASCII), bạn cũng có thể định nghĩaint c = 'a'
đều được.Trong Sách The C programming Language 2nd, đều dùng kiểu
int
để khai báo 1 ký tự (tham khảo các ví dụ chương I).Định nghĩa từ wiki:
char
Smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed or unsigned depending on the implementation. It contains CHAR_BIT bits.[3]C data types
In the C programming language, data types are declarations for memory locations or variables that determine the characteristics of the data that may be stored and the methods (operations) of processing that are permitted involving them. The C language provides basic arithmetic types, such as integer and real number types, and syntax to build array and compound types. Several headers in the C standard library contain definitions of support types, that have additional properties, such as provid...
Bản thân mọi dữ liệu được coi là kiểu số. Tuy nhiên cách thức nó hiển thị với người lập trình và số lượng byte nó thể hiện thì khác nhau . Thầy bạn gọi đó là số , cũng đúng . Bởi vì mỗi ký tự trong hệ chữ viết được biểu diễn dưới dạng byte(s). Ví dụ như chữ ‘a’ sẽ được biểu diễn bởi một byte(s) mà khi quy ra hệ thập phân sẽ là số 97. Khi bạn khai báo một biến kiểu char , chương trình sẽ hiểu rằng giá trị của biến đó sẽ được thao tác và biểu hiện dưới dạng một ký tự trong bảng mã ASCII(char) và Unicode(wchar_t).
Nhiều khi char tương đương với int nhưng không phải viết cho máy tính.
Một số complier (không phải cho máy tính) thì mặc định int là 8 bit.
char
vàint
là 2 từ khóa (key word) biểu diễn dữ liệu có kích thước khác nhau trong C và cùng là số nguyên (integer type).char
có kích thước 1 byte.int
có kích thước 2 hoặc 4 byte phụ thuộc vào CPU, compiler.Các bạn đừng nhầm lẫn kiểu
số nguyên (integer)
và từ khóaint
nhé.