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ảntrongC: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 .34f45.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;
doubleg,pi=3.1415,rad =3.14;
Khai báo hằng dướidạng biểutượng (symbolicconstant)
#defineTÊN_HẰNGgiá_trị
constkiểu_dữ_liệuTÊN_HẰNG=giá_trị;
2.2Biến,hằng,kiểudữliệu
/*Example2.2.2*/
#include<stdio.h>
#definelai_xuat0.013
int main(void)
{
constintso_thang=12;
floattien_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ử