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

Phạm Văn Đại viết 20:47 ngày 30/09/2018

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…

Nguyễn Văn Tuấn viết 20:44 ngày 30/09/2018

Ý mình nó là int hay Ký tự đó bạn

Bi-Clever viết 20:54 ngày 30/09/2018

ter rồi thì int là

ấy mình trả lời nhầm

Bi-Clever viết 20:54 ngày 30/09/2018

char là kiểu kí tự mà bạn

Pham Van Hai viết 20:48 ngày 30/09/2018

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ĩa int 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]

en.wikipedia.org

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...

Trần Đạt viết 20:53 ngày 30/09/2018

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).

char x='a';
cout<<(int)x;//Outputs:97
Văn Dương viết 20:53 ngày 30/09/2018

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.

Pham Van Hai viết 20:49 ngày 30/09/2018

charint 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óa int nhé.

Bài liên quan
0