PDA

View Full Version : hỏi về C



poiu_lkjh28
30-04-2009, 16:30
trong sách viet là: kieu int phạm vi biểu diễn -32768 đến 32767
kiểu unsigned int ........ 0 đến 65535
nhưng sao khi minh gán cho một biến kiểu int một giá trị không thuộc phạm vi biểu diên của nó thì máy nó vẫn hiển thị được,cụ thể là mình gán biến kiểu int có giá trị là 40000,biến kiểu unsigned co giá trị 7000000. Mình ko hiểu tại sao?các bác chỉ dùm.đây là đoạn chương trình hiển thị 2 giá trị đó,mình chạy bằng visual C
#include<stdio.h>
void main()
{
int ch1;
unsigned int ch2;
ch1=400000;ch2=7000000;
printf("gia tri cua ch1:%d\n",ch1);
printf("gia tri cua ch2:%d\n",ch2);
}

pdah
30-04-2009, 16:45
Thử in cái này ra xem được bao nhiêu :
printf("size of int type in Visual C : %d\n",sizeof(int));

poiu_lkjh28
30-04-2009, 19:40
Thử in cái này ra xem được bao nhiêu :
printf("size of int type in Visual C : %d\n",sizeof(int));

mình hiểu ý của bạn,toán tử sizeof tính độ lớn của 1 kiểu dũ liệu,mình in ra thì kiểu int có giá trị là 4.Tại sao trong sách thì ghi kích thước của kiểu int chỉ có 2 byte. Vậy chẳng lẻ tất cả các sách đếu sai a?

pdah
30-04-2009, 20:12
C trên môi trường Windows,trong trường hợp này là cụ thể là Visual C có độ lớn là 4 bytes.
Còn đa số các sách bạn học thì dựa trên C for DOS nên không sai.

poiu_lkjh28
30-04-2009, 20:50
uh.rất cám ơn.lúc chạy thằng sizeof là mình cũng hiểu rồi.