
11/24/2010
1
2.2Biến,kiểudữliệuvàcác
toán tửtoán học
Nội dung
Biến
Hằng
Các kiểudữliệucơbảntrongC
Biểuthứctoánhọc
Mộtsốhàm toán họctrongC
Toán tửlogicvà toán tửtrên bit
Độ ưutiêncủa các toán tử
2.2Biến,hằng,kiểudữliệu
Biến(variable)làđạilượngmàgiátrịcóthểthayđổitrong
chươngtrình.
Biếnphảiđượckhaibáotrướckhisửdụng.
Tênbiếnđượcđặt theo quy tắcđịnh danh.
Quytắcđặtđịnhdanh(identifier):
Gồmcó:chữcái,chữsốvàdấugạchdưới“_”
Bắtđầucủađịnhdanhphảilàchữcáihoặcdấugạch
dưới,khôngđượcbắtđầuđịnhdanhbằngchữsố.
Địnhdanhdongườilậptrìnhđặtkhôngđượctrùngvới
từkhóa,và các định danh khác.
2.2Biến,hằng,kiểudữliệu
Định danh hợplệĐịnh danh không hợplệ
wiggles
cat2
Hot_Tub
taxRate
_kcab
$Z]**
2cat
Hot-Tub
tax rate
don‘t
int
Ngôn ngữCphân biệtchữhoa và chữthường !
sum,Sum,sUm,suM,SUm là các tên biến khác nhau

11/24/2010
2
2.2Biến,hằng,kiểudữliệu
Độ dài tên biến không giớihạn,tuy nhiên chỉcó 31ký tự
đầulàcóýnghĩa.
Khôngnên đặt tên biến quá dài
Nên đặt tên biếncóýnghĩa
VD.Biếnchứa thông tinvềđiểm thi nên đặtlàdiemThi
hoặcdiemThiTHDC thay vì chỉđặt tên là d, I, x …
DùngquytắcCamel:vd,soSinhVien,diemThi
Dùngdấugạchnối:vd,so_sinh_vien,diem_thi
2.2Biến,hằng,kiểudữliệu
Cáckýtự,sốhoặcxâukýtựđược
gọilàmộthằng (constant)
Vd.5, 5.6, 'A',
"programming is fun\n"
Biểuthứcmàtoánhạngchỉgồm
cáchằngsốđượcgọilàbiểuthức
hằng
VD.4+5-6.1
CáckiểudữliệucơbảntrongC:int, float,
double, char
2.2Biến,hằng,kiểudữliệu2.2Biến,hằng,kiểudữliệu
Kiểusốnguyên cơbản:int
10,‐23,0là các hằng sốnguyên
Mặcđịnh trong Ccác hằng sốnguyên biểudiễnbằng hệcơ
số10.
Ngoài hệcơsố10,hằng sốnguyên còn đượcbiểudiễn
bằng hệcơsố8(octal)và hệsơsố16(hexa)
Hệcơsố8:bắtđầubằng số0,vd 050,045
Hệcơsố16:bắtđầubằng 0x,vd 0x5F,0xE5
Inradùng%d,%i,%o,%#o,%x,%#x
printf("%d%d%d\n",50,050,0x50);
Inra:504080

11/24/2010
3
2.2Biến,hằng,kiểudữliệu
Các kiểusốnguyên khác:char,short,long,longlong
Kích thướclưutrữ
Để chỉrõhằng kiểulong ta dùng thêm ký hiệulhoặcLởsau
Type
Macintosh
MetrowerksCW
(Default) LinuxonaPC
IBMPC
WindowsXP
WindowsNT
ANSIC
Minimum
char 8 8 8 8
int 32 32 32 16
short 16 16 16 16
long 32 32 32 32
longlong 64 64 64 64
2.2Biến,hằng,kiểudữliệu
Sốnguyên có dấuvàsốnguyên không dấu:signed và
unsigned
Mặcđịnh các kiểusốnguyên là signed
Khai báo sốnguyên không dấu:unsigned
unsigned int,unsignedlong,…
Để chỉra rõ mộthằng sốnguyên là không dấu,dùng u
hoặcUởcuối
243U,34u,343454UL
2.2Biến,hằng,kiểudữliệu
Kiểusốthực:float
3.,125.8,và –.0001 là các hằng sốthực
3.5e+2,.12e3là các hằng sốthựcdướidạng ký pháp khoa
học
Kích thướcbiểudiễn:32bit
Inra sốthực
%f dướidạng dấuphảytĩnh
%e dướidạng ký pháp khoa học
%g tựđiềuchỉnh cho dễnhìn
printf("%f%e%g",.00000012,5.12,50000.12);
2.2Biến,hằng,kiểudữliệu
Kiểusốthựcmởrộng :double
Sửdụng 64bit
Độ chính xác gấpđôi sovớifloat
Để phân biệt1hằng sốthựclàfloatthì thêm ký hiệuf
hoặcFởcuối .34f45.56F

11/24/2010
4
2.2Biến,hằng,kiểudữliệu
Kiểukýtự:char
‘A’,‘v’,‘0’,‘\n’là các hằng ký tự
Inra bằng %c
Có thểdùng nhưmộtgiátrịnguyên (chínhlàmã
ASCIIcủakýtựđó)
printf("%c %d",'A','A');
2.2Biến,hằng,kiểudữliệu
Mộtsốhằng ký tựKý hiệuÝnghĩa
\a Audiblealert
\b Backspace
\f Formfeed
\n Newline
\r Carriagereturn
\t Horizontaltab
\v Verticaltab
\\ Backslash
\” Doublequote
\’ Singlequote
\?Questionmark
2.2Biến,hằng,kiểudữliệu
Type ConstantExamples Printf char
char 'a','\n' %c
shortint %hi,%hx,%ho
unsignedshortint %hi,%hx,%ho
int12,‐97,0xFFE0,0177%i,%x,%o
unsignedint 12u,100U,0XFFu %u,%x,%o
longint 12L,‐2001,0xffffL %li,%lx,%lo
unsignedlongint 12UL,100ul,0xffeeUL%lu,%lx,%lo
longlong int 0xe5e5e5e5LL,500ll %lli,%llx,%llo
unsignedlonglong
int
12ull,0xffeeULL %llu,%llx,%llo
float 12.34f,3.1e‐5f %f,%e,%g
double 12.34,3.1e‐5 %f,%e,%g
longdouble 12.341,3.1e‐5l %Lf,%Le,%Lg
2.2Biến,hằng,kiểudữliệu
/*Example2.2.1
*kichthuoc cac kieu dulieucoban*/
#include<stdio.h>
int main(void)
{
printf("Kieu int %dbytes.\n",sizeof(int));
printf("Kieu char%dbytes.\n",sizeof(char));
printf("Kieu long%i bytes.\n",sizeof(long));
printf("Kieu double%ubytes.\n",sizeof(double));
return0;
}

11/24/2010
5
2.2Biến,hằng,kiểudữliệu
Khai báo biến
Kiểu_dữ_liệutên_biến;
Kiểu_dữ_liệutên_biến=giá_trị_ban_đầu;
int a;
floatb,c,diem_thi;
doubleg,pi=3.1415,rad =3.14;
Khai báo hằng dướidạng biểutượng (symbolicconstant)
#defineTÊN_HẰNGgiá_trị
constkiểu_dữ_liệuTÊN_HẰNG=giá_trị;
2.2Biến,hằng,kiểudữliệu
/*Example2.2.2*/
#include<stdio.h>
#definelai_xuat0.013
int main(void)
{
constintso_thang=12;
floattien_gui=10e6;
printf("Tienlai 1nam :%g\n",tien_gui*so_thang*lai_xuat);
return0;
}
Kiểudữliệulogic– Boolean
Kiểu_Bool:kiểulogicchỉcótừbảnC99
KiểulogictrongC:
Falsetươngứngvới0
Truetươngứngvớigiátrị0
Kiểu_Bool:đượcđịnhnghĩatrong<stdbool.h>
Haigiátrịtrue,false đượcđịnhnghĩa
Cóthểdùng%iđểinrabiếnkiểu_Bool
_Boolsam=true;
if(sam)printf("TRUE");
else printf("FALSE");
BiểuthứctrongC
•Biểuthứctoánhọc
•Cácloạitoántử
•Độưutiêncủacáctoántử
•Thayđổiđộưutiêncủatoántử

