Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 14

Bi 2

Bin v Kiu d liu

Mc tiu:
Kt thc bi hc ny, bn c th:
Hiu v s dng c bin (variables)
Phn bit s khc nhau gia bin v hng (constants)
Nm vng v s dng cc kiu d liu khc nhau trong chng trnh C
Hiu v s dng cc ton t s hc.
Gii thiu
Bt c chng trnh ng dng no cn x l d liu cng cn c ni lu tr tm thi d liu y.
Ni m d liu c lu tr gi l b nh. Nhng v tr khc nhau trong b nh c th c xc nh
bi cc a ch duy nht. Nhng ngn ng lp trnh trc y yu cu lp trnh vin qun l mi v tr
nh thng qua a ch, cng nh gi tr lu trong n. Cc lp trnh vin dng nhng a ch ny
truy cp hoc thay i ni dung ca cc nh. Khi ngn ng lp trnh pht trin, vic truy cp hay
thay i gi tr nh c n gin ho nh s ra i ca khi nim bin .
2.1 Bin (variable)
Mt chng trnh ng dng c th qun l nhiu loi d liu. Trong trng hp ny, chng trnh phi
ch nh b nh cho mi n v d liu. Khi ch nh b nh, c hai im cn lu nh sau :
1. Bao nhiu b nh s c gn
2. Mi n v d liu c lu tr u trong b nh.
Trc y, cc lp trnh vin phi vit chng trnh theo ngn ng my gm cc m 1 v 0. Nu mun
lu tr mt gi tr tm thi, v tr chnh xc ni m d liu c lu tr trong b nh my tnh phi
c ch nh. V tr ny l mt con s c th, gi l a ch b nh.
Cc ngn ng lp trnh hin i cho php chng ta s dng cc tn tng trng gi l bin (variable),
ch n mt vng b nh ni m cc gi tr c th c lu tr.
Kiu d liu quyt nh tng s b nh c ch nh. Nhng tn c gn cho bin gip chng ta s
dng li d liu khi cn n.
Chng ta quen vi cch s dng cc k t i din trong mt cng thc. V d, din tch hnh ch
nht c tnh bi :
Din tch = A = chiu di x chiu rng = L x B
Cch tnh li sut n gin c cho nh sau:
Tin li = I = S tin ban u x Thi gian x T l/100 = P x T x R /100
Cc k t A, L, B, I, P, T, R l cc bin v l cc k t vit tt i din cho cc gi tr khc nhau.

Bin v Kiu d liu

23

Xem v d sau y :
Tnh tng im cho 5 sinh vin v hin th kt qu. Vic tnh tng c thc hin theo hng dn sau.
Hin th gi tr tng ca 24, 56, 72, 36 v 82
Khi gi tr tng c hin th, gi tr ny khng cn c lu trong b nh my tnh. Gi s, nu
chng ta mun tnh im trung bnh, th gi tr tng phi c tnh mt ln na.
Tt hn l chng ta s lu kt qu vo b nh my tnh, v s ly li n khi cn n.
sum = 24 + 56 + 72 + 36 + 82
y, sum l bin c dng cha tng ca 5 s. Khi cn tnh im trung bnh, c th thc hin
nh sau:
Avg = sum / 5
Trong C, tt c bin cn phi c khai bo trc khi dng chng.
Chng ta hy xt v d nhp hai s v hin th tng ca chng trong v d 1.
V d 1:
BEGIN
DISPLAY Enter 2 numbers
INPUT A, B
C =A+ B
DISPLAY C
END
A, B v C trong on m trn l cc bin. Tn bin gip chng ta trnh phi nh a ch ca v tr b
nh. Khi on m c vit v thc thi, h iu hnh m nhim vic cp khng gian nh cn trng
cho nhng bin ny. H iu hnh nh x mt tn bin n mt v tr xc nh trong b nh ( nh).
V tham chiu ti mt gi tr ring bit trong b nh, chng ta ch cn ch ra tn ca bin. Trong v
d trn, gi tr ca hai bin c nhp t ngi dng v chng c lu tr ni no trong b nh.
Nhng v tr ny c th c truy cp thng qua cc tn bin A v B. Trong bc k tip, gi tr ca
hai bin c cng v kt qu c lu trong bin th 3 l bin C. Cui cng, gi tr bin C c hin
th.
Trong khi mt vi ngn ng lp trnh cho php h iu hnh xa ni dung trong nh v cp pht b
nh ny dng li th nhng ngn ng khc nh C yu cu lp trnh vin xa vng nh khng s
dng thng qua m chng trnh. Trong c hai trng hp, h iu hnh u lo vic cp pht v thu
hi nh.
H iu hnh hot ng nh mt giao din gia cc nh v lp trnh vin. Lp trnh vin khng cn
lu tm v v tr nh m cho h iu hnh m nhim. Vy vic iu khin b nh (v tr m d
liu thch hp lu tr) s do h iu hnh m trch, ch khng phi lp trnh vin.
2.2

Hng (constant)

Trong trng hp ta dng bin, gi tr c lu s thay i. Mt bin tn ti t lc khai bo n khi


thot khi phm vi dng n. Nhng cu lnh trong phm vi khi m ny c th truy cp gi tr ca

24

Lp trnh c bn C

bin, v thm ch c th thay i gi tr ca bin. Trong thc t, i khi cn s dng mt vi khon


mc m gi tr ca chng khng bao gi b thay i.
Mt hng l mt gi tr khng bao gi b thay i. V d, 5 l mt hng, m gi tr ton hc lun l 5
v khng th b thay i bi bt c ai. Tng t, Black l mt hng, n biu th cho mu en. Khi ,
5 c gi l hng s (numeric constant), Black c gi l hng chui (string constant).
2.3

nh danh (Identifier)

Tn ca cc bin (variables), cc hm (functions), cc nhn (labels) v cc i tng khc nhau do


ngi dng nh ngha gi l nh danh. Nhng nh danh ny c th cha mt hay nhiu k t. K t
u tin ca nh danh phi l mt ch ci hay mt du gch di ( _ ). Cc k t tip theo c th l
cc ch ci, cc con s hay du gch di.
Arena, s_count, marks40, v class_one l nhng nh danh ng. Cc v d v cc nh danh sai l
1sttest, oh!god, v start... end.
Cc nh danh c th c chiu di tu , nhng s k t trong mt bin c nhn din bi trnh bin
dch th thay i theo trnh bin dch. V d, nu mt trnh bin dch nhn din 31 con s c ngha
u tin cho mt tn nh danh th cc cu sau s hin th cng mt kt qu:
y l bin testing.... testing
y l bin testing.... testing ... testing
Cc nh danh trong C c phn bit ch hoa v ch thng, c th, arena th khc ARENA.
2.3.1

Cc nguyn tc cho vic ch t tn

Cc quy tc t tn bin khc nhau tu ngn ng lp trnh. Tuy nhin, vi quy c chun c tun
theo nh :
Tn bin phi bt u bng mt k t ch ci.
Cc k t theo sau k t u bng mt chui cc ch ci hoc con s v cng c th bao gm k
t c bit nh du gch di.
Trnh dng k t O ti nhng v tr m c th gy lm ln vi s khng (0) v tng t ch ci l
(ch thng ca ch hoa L) c th lm ln vi s 1.
Tn ring nn trnh t tn cho bin.
Theo tiu chun C cc ch ci thng v hoa th xem nh khc nhau v d. bin ADD, add v Add
l khc nhau.
Vic phn bit ch hoa v ch thng khc nhau tu theo ngn ng lp trnh. Do , tt nht nn
t tn cho bin theo cch thc chun.
Tn mt bin nn c ngha, gi t v m t r kiu d liu ca n. V d, nu tm tng ca hai s
th tn bin lu tr tng nn t l sum (tng). Nu t tn l s hay ab12 th khng hay lm.

Bin v Kiu d liu

25

2.3.2

T kha (Keywords)

Tt c cc ngn ng dnh mt s t nht nh cho mc ch ring. Nhng t ny c mt ngha c


bit trong ng cnh ca tng ngn ng, v c xem l t kha. Khi t tn cho cc bin, chng ta
cn bo m rng khng dng bt c t kha no lm tn bin.
Tn kiu d liu tt c c coi l t kha.
Do vy, t tn cho mt bin l int s pht sinh mt li, nhng t tn cho bin l integer th khng.
Vi ngn ng lp trnh yu cu lp trnh vin ch ra tn ca cc bin cng nh kiu d liu ca n
trc khi dng bin tht s. Bc ny c gi l khai bo bin. Ta s ni r bc ny trong phn
tip theo khi tho lun v cc kiu d liu. iu quan trng cn nh by gi l bc ny gip h iu
hnh tht s cp pht mt khong khng gian vng nh cho bin trc khi bt u s dng n.
2.4

Cc kiu d liu (Data types)

Cc loi d liu khc nhau c lu tr trong bin l :


S (Numbers)

Cc s nguyn.
V d : 10 hay 178993455.
Cc s thc.
V d : 15.22 hay 15463452.25.
Cc s dng.
Cc s m.

Tn.
V d : John.
Gi tr lun l.
V d : Y hay N.
Khi d liu c lu tr trong cc bin c kiu d liu khc nhau, n yu cu dung lng b nh s
khc nhau.
Dung lng b nh c ch nh cho mt bin ty thuc vo kiu d liu ca n.
ch nh b nh cho mt n v d liu, chng ta phi khai bo mt bin vi mt kiu d liu c
th.
Khai bo mt bin c ngha l mt vng nh no c gn cho bin. Vng b nh sau ny s
c tham chiu thng qua tn ca bin. Dung lng b nh c cp cho bin bi h iu hnh ph
thuc vo kiu d liu c lu tr trong bin. V vy, mt kiu d liu s m t loi d liu ph hp
vi bin.
Dng thc chung cho vic khai bo mt bin:
Kiu d liu (Tn bin)
Kiu d liu thng c dng trong cc cng c lp trnh c th c phn chia thnh:

26

Lp trnh c bn C

1 Kiu d liu s - lu tr gi tr s.
2 Kiu d liu k t lu tr thng tin m t
Nhng kiu d liu ny c th c tn khc nhau trong cc ngn ng lp trnh khc nhau. V d, mt
kiu d liu s c gi trong C l int trong khi ti Visual Basic c gi l integer. Tng t,
mt kiu d liu k t c t tn l char trong C trong khi trong Visual Basic n c t tn l
string. Trong bt c trng hp no, cc d liu c lu tr lun ging nhau. im khc duy nht l
cc bin c dng trong mt cng c phi c khai bo theo tn ca kiu d liu c h tr bi
chnh cng c .
C c 5 kiu d liu c bn. Tt c nhng kiu d liu khc da vo mt trong s nhng kiu ny. 5
kiu d liu l:
int l mt s nguyn, v c bn n biu th kch c t nhin ca cc s nguyn (integers).
float v double c dng cho cc s c du chm ng. Kiu float (s thc) chim 4 byte v c
th c ti 6 con s phn sau du thp phn, trong khi double chim 8 bytes v c th c ti 10 con
s phn thp phn.
char chim 1 byte v c kh nng lu mt k t n (character).
void c dng in hnh khai bo mt hm khng tr v gi tr. iu ny s c ni r hn
trong phn hm.
Dung lng nh v phm vi gi tr ca nhng kiu ny thay i theo mi loi b x l v vic ci t
cc trnh bin dch C khc nhau.
Lu : Cc con s du chm ng c dng biu th cc gi tr cn c chnh xc phn thp
phn.
Kiu d liu int
L kiu d liu lu tr d liu s v l mt trong nhng kiu d liu c bn trong bt c ngn ng
lp trnh no. N bao gm mt chui ca mt hay nhiu con s.
Th d trong C, lu tr mt gi tr s nguyn trong mt bin tn l num, ta khai bo nh sau:
int num;
Bin num khng th lu tr bt c kiu d liu no nh Alan hay abc. Kiu d liu s ny cho
php cc s nguyn trong phm vi -32768 ti 32767 c lu tr. H iu hnh cp pht 16 bit (2
byte) cho mt bin c khai bo kiu int. V d: 12322, 0, -232.
Nu chng ta gn gi tr 12322 cho num th bin ny l bin kiu s nguyn
v 12322 l hng s nguyn.
Kiu d liu s thc (float)
Mt bin c kiu d liu s thc c dng lu tr cc gi tr cha phn thp phn. Trnh bin
dch phn bit cc kiu d liu float v int.
im khc nhau chnh ca chng l kiu d liu int ch bao gm cc s nguyn, trong khi kiu d
liu float c th lu gi thm c cc phn s.
V d, trong C, lu tr mt gi tr float trong mt bin tn gi l num, vic khai bo s nh
sau :

Bin v Kiu d liu

27

float num;
Bin khai bo l kiu d liu float c th lu gi tr thp phn c chnh xc ti 6 con s.
Bin ny c cp pht 32 bit (4 byte) ca b nh. V d: 23.05, 56.5, 32.
Nu chng ta gn gi tr 23.5 cho num, th bin num l bin s thc v 23.5 l
mt hng s thc.
Kiu d liu double
Kiu d liu double c dng khi gi tr c lu tr vt qu gii hn v dung lng ca kiu
d liu float. Bin c kiu d liu l double c th lu tr nhiu hn khong hai ln s cc ch s
ca kiu float.
S cc ch s chnh xc m kiu d liu float hoc double c th lu tr ty thuc vo h iu
hnh c th ca my tnh.
Cc con s c lu tr trong kiu d liu float hay double c xem nh nhau trong h thng
tnh ton. Tuy nhin, s dng kiu d liu float tit kim b nh mt na so vi kiu d liu
double.
Kiu d liu double cho php chnh xc cao hn (ti 10 con s). Mt bin khai bo kiu d
liu double chim 64 bit (8 byte) trong b nh.
Th d trong C, lu tr mt gi tr double cho mt bin tn num, khai bo s nh sau:
double num;
Nu chng ta gn gi tr 23.34232324 cho num, th bin num l bin kiu
double v 23.34232324 l mt hng kiu double.
Kiu d liu char
Kiu d liu char c dng lu tr mt k t n.
Mt kiu d liu char c th lu mt k t n c bao ng trong hai du nhy n (). Th d
kiu d liu char nh: a, m, $ %.
Ta c th lu tr nhng ch s nh nhng k t bng cch bao chng bn trong cp du nhy n.
Khng nn nhm ln chng vi nhng gi tr s. V d, 1, 5 v 9 s khng c nhm ln vi
nhng s 1, 5 v 9.
Xem xt nhng cu lnh ca m C di y:
char gender;
gender='M';
Hng u tin khai bo bin gender ca kiu d liu char. Hng th hai lu gi mt gi tr khi
to cho n l M. Bin gender l mt bin k t v M l mt hng k t. Bin ny c cp pht
8 bit (1 byte) trong b nh.
Kiu d liu void

28

Lp trnh c bn C

C c mt kiu d liu c bit gi l void. Kiu d liu ny ch cho trnh bin dch C bit rng
khng c d liu ca bt c kiu no. Trong C, cc hm s thng tr v d liu thuc mt kiu
no . Tuy nhin, khi mt hm khng c g tr v, kiu d liu void c s dng ch ra
iu ny.
2.4.1 Nhng kiu d liu c bn v dn xut
Bn kiu d liu (char, int, float v double) m chng ta tho lun trn c s dng cho vic
trnh by d liu thc s trong b nh ca my tnh. Nhng kiu d liu ny c th c sa i sao
cho ph hp vi nhng tnh hung khc nhau mt cch chnh xc. Kt qu, chng ta c c cc kiu
d liu dn xut t nhng kiu c bn ny.
Mt b t (modifier) c s dng thay i kiu d liu c bn nhm ph hp vi cc tnh hung
a dng. Ngoi tr kiu void, tt c cc kiu d liu khc c th cho php nhng b t ng trc
chng. B t c s dng vi C l signed, unsigned, long v short. Tt c chng c th c p
dng cho d liu kiu k t v kiu s nguyn. B t long cng c th c p dng cho double.
Mt vi b t nh :
1.
2.
3.

unsigned
long
short

khai bo mt bin kiu dn xut, chng ta cn t trc khai bo bin thng thng mt trong
nhng t kha ca b t. Mt gii thch chi tit v cc b t ny v cch thc s dng chng c
trnh by bn di.
Cc kiu c du (signed) v khng du(unsigned)
Khi khai bo mt s nguyn, mc nh l mt s nguyn c du. Tnh quan trng nht ca vic
dng signed l b sung cho kiu d liu char, v char l kiu khng du theo mc nh.
Kiu unsigned ch r rng mt bin ch c th c gi tr dng. B t ny c th c s dng vi
kiu d liu int v kiu d liu float. Kiu unsigned c th p dng cho kiu d liu float trong
vi trng hp nhng iu ny gim bt tnh kh chuyn (portability) ca m lnh.
Vi vic thm t unsigned vo trc kiu d liu int, min gi tr cho nhng s dng c th
c tng ln gp i.
Ta xem nhng cu lnh ca m C cung cp bn di, n khai bo mt bin theo kiu unsigned
int v khi to bin ny c gi tr 23123.
unsigned int varNum;
varNum = 23123;
Ch rng khng gian cp pht cho kiu bin ny vn gi nguyn. Ngha l, bin varNum c
cp pht 2 byte nh khi n dng kiu int. Tuy nhin, nhng gi tr m mt kiu unsgned int h tr
s nm trong khong t 0 n 65535, thay v l -32768 ti 32767 m kiu int h tr. Theo mc
nh, int l mt kiu d liu c du.
Cc kiu long v short
Chng c s dng khi mt s nguyn c chiu di ngn hn hoc di hn chiu di bnh
thng. Mt b t short c p dng cho kiu d liu khi chiu di yu cu ngn hn chiu di

Bin v Kiu d liu

29

s nguyn bnh thng v mt b t long c dng khi chiu di yu cu di hn chiu di s


nguyn bnh thng.
B t short c s dng vi kiu d liu int. N sa i kiu d liu int theo hng chim t v
tr b nh hn. Bi vy, trong khi mt bin kiu int chim gi 16 bit (2 byte) th mt bin kiu
short int (hoc ch l short), chim gi 8 bit (1 byte) v cho php nhng s c trong phm vi t
-128 ti 127.
B t long c s dng tng ng mt min gi tr rng hn. N c th c s dng vi int
cng nh vi kiu d liu double. Khi c s dng vi kiu d liu int, bin chp nhn nhng
gi tr s trong khong t -2,147,483,648 n 2,147,483,647 v chim gi 32 bit ( 4 byte). Tng
t, kiu long double ca mt bin chim gi 128 bit (16 byte).
Mt bin long int c khai bo nh sau:
long int varNum;
N cng c th c khai bo n gin nh long varNum. Mt s long integer c th c khai
bo nh long int hay ch l long. Tng t, ta c short int hay short.
Bng di y trnh by phm vi gi tr cho cc kiu d liu khc nhau v s bit n chim gi da
theo tiu chun ANSI.
Kiu
char
unsigned
signed char
int
unsigned int
signed int
short int
unsigned short int
signed short int
long int
signed long int
unsigned long int
float
double
long double

Dung lng xp x (n v l bit)


8
8
8
16
16
16
16
16
16
32
32
32
32
64
128

Phm vi
-128 ti 127
0 ti 255
-128 ti 127
-32,768 ti 32,767
0 ti 65,535
Ging nh kiu int
-128 ti 127
0 ti 65, 535
Ging nh kiu short int
-2,147,483,648 ti 2,147,483,647
Ging nh kiu long int
0 ti 4,294,967,295
6 con s thp phn
10 con s thp phn
10 con s thp phn

Table 2.1: Cc kiu d liu v phm vi


Th d sau trnh by cch khai bo nhng kiu d liu trn.
V d 2:
main()
{
char abc;
int xyz;
float length;
double area;
long liteyrs;
short arm;
30

/*abc of type character */


/*xyz of type integer */
/*length of type float */
/* area of type double */
/*liteyrs of type long int */
/*arm of type short integer*/
Lp trnh c bn C

}
Chng ta xem li v d cng hai s v hin th tng chng trc. M gi nh sau :
V d 3:
BEGIN
INPUT A, B
C = A + B
DISPLAY C
END
Trong v d ny, cc gi tr cho hai bin A v B c nhp. Cc gi tr c cng v tng c lu cho
bin C bng cch dng cu lnh C = A + B. Trong cu lnh ny, A v B l nhng bin v k hiu + gi
l ton t. Chng ta s ni v ton t s hc ca C phn sau y. Tuy nhin, c nhng loi ton t
khc trong C s c bn ti phn k tip.
2.5

Cc ton t s hc (Arithmetic Operators)

Nhng ton t s hc c s dng thc hin nhng thao tc mang tnh s hc. Chng c chia
thnh hai lp : Ton t s hc mt ngi (unary) v ton t s hc hai ngi (binary).
Bng 2.2 lit k nhng ton t s hc v chc nng ca chng.
Cc ton t mt ngi
++
--

Chc nng
Ly i s
Tng mt gi tr
Gim mt gi tr

Cc ton t hai ngi


+
*
%
/
^

Chc nng
Cng
Tr
Nhn
Ly phn d
Chia
Ly s m

Bng 2.2: Cc ton t s hc v chc nng


Cc ton t hai ngi

Trong C, cc ton t hai ngi c chc nng ging nh trong cc ngn ng khc. Nhng ton t
nh +, -, * v / c th c p dng cho hu ht kiu d liu c sn trong C. Khi ton t / c p
dng cho mt s nguyn hoc k t, bt k phn d no s c ct b. V d, 5/2 s bng 2 trong
php chia s nguyn. Ton t % s cho ra kt qu l s d ca php chia s nguyn. V d: 5%2
s c kt qu l 1. Tuy nhin, % khng th c s dng vi nhng kiu c du chm ng.
Chng ta hy xem xt mt v d ca ton t s m.
9^2
y 9 l c s v 2 l s m.
S bn tri ca ^ l c s v s bn phi ^ l s m.
Kt qu ca 9^2 l 9*9 = 81.
Thm v d khc:

Bin v Kiu d liu

31

5^3
C ngha l:
5*5*5
Do : 5 ^ 3 = 5 * 5 * 5 = 125.
Ghi ch: Nhng ngn ng lp trnh nh Basic, h tr ton t m. Tuy nhin, ANSI C khng h tr k
hiu ^ cho php tnh ly tha. Ta c th dng cch khc tnh ly tha trong C l dng hm pow()
c nh ngha trong math.h. C php ca n th hin qua v d sau:
...
#include<math.h>
void main(void)
{
.
/* the following function will calculate x to the power y. */
z = pow(x, y);
.
}
V d sau trnh by tt c ton t hai ngi c dng trong C. Ch rng ta cha ni v hm
printf() v getchar(). Chng ta s bn trong nhng phn sau.
V d 4:
#include<stdio.h>
main()
{
int x,y;
x = 5;
y = 2;
printf("The integers are
printf("The addition gives
printf("The subtraction gives
printf("The multiplication gives
printf("The division gives
printf("The modulus gives
getchar();
}

:
:
:
:
:
:

%d & %d\n", x, y);


%d\n", x + y);
%d\n", x - y);
%d\n", x * y);
%d\n", x / y);
%d\n", x % y);

Kt qu l:
The
The
The
The
The
The

integers are
:
addition gives
:
subtraction gives
:
multiplication gives :
division gives
:
modulus gives
:

5 & 2
7
3
10
2
1

Cc ton t mt ngi (unary)


Cc ton t mt ngi l ton t tr mt ngi -, ton t tng ++ v ton t gim --

32

Lp trnh c bn C

Ton t tr mt ngi
K hiu ging nh php tr hai ngi. Ly i s ch ra hay thay i du i s ca mt gi
tr. V d:
a = -75;
b = -a;
Kt qu ca vic gn trn l a c gn gi tr -75 v b c gn cho gi tr 75 (-(- 75)). Du
tr c s dng nh th gi l ton t mt ngi v n ch c mt ton hng.
Ni mt cch chnh xc, khng c ton t mt ngi + trong C. V vy, mt lnh gn nh.
invld_pls = +50;
khi m invld_pls l mt bin s nguyn l khng hp l trong chun ca C. Tuy nhin, nhiu
trnh bin dch khng phn i cch dng nh vy.
Cc ton t Tng v Gim
C bao cha hai ton t hu ch m ta khng tm thy c trong nhng ngn ng my tnh
khc. Chng l ++ v --. Ton t ++ thm vo ton hng ca n mt n v, trong khi ton t
-- gim i ton hng ca n mt n v.
C th:
x = x + 1;
c th c vit l:
x++;
v:
x = x - 1;
c th c vit l:
x--;
C hai ton t ny c th ng trc hoc sau ton hng, chng hn:
x = x + 1;
c th c vit li l
x++ hay ++x;
V cng tng t cho ton t --.
S khc nhau gia vic x l trc hay sau trong ton t mt ngi tht s c ch khi n c
dng trong mt biu thc. Khi ton t ng trc ton hng, C thc hin vic tng hoc gim
gi tr trc khi s dng gi tr ca ton hng. y l tin x l (pre-fixing). Nu ton t i
sau ton hng, th gi tr ca ton hng c s dng trc khi tng hoc gim gi tr ca n.
y l hu x l (post-fixing). Xem xt v d sau :
a = 10;

Bin v Kiu d liu

33

b = 5;
c = a * b++;
Trong biu thc trn, gi tr hin thi ca b c s dng cho tnh ton v sau gi tr ca b
s tng sau. Tc l, c c gn 50 v sau gi tr ca b c tng ln thnh 6.
Tuy nhin, nu biu thc trn l:
c = a * ++b;
th gi tr ca c s l 60, v b s l 6 bi v b c tng 1 trc khi thc hin php nhn vi a,
sau gi tr c gn vo c.
Trong trng hp m tc ng ca vic tng hay gim l ring l th ton t c th ng trc
hoc sau ton hng u c.
Hu ht trnh bin dch C sinh m rt nhanh v hiu qu i vi vic tng v gim gi tr. M
ny s tt hn so vi khi ta dng ton t gn. V vy, cc ton t tng v gim nn c dng
bt c khi no c th.
Tm tt bi hc
Thng thng, khi chng trnh ng dng cn x l d liu, n cn c ni no lu tr tm
thi d liu ny. Ni m d liu c lu tr gi l b nh.
Cc ngn ng lp trnh hin i ngy nay cho php chng ta s dng cc tn tng trng gi l
bin (variable), dng ch n mt vng trong b nh ni m cc gi tr c th c lu tr.
Khng c gii hn v s v tr b nh m mt chng trnh c th dng.
Mt hng (constant) l mt gi tr khng bao gi b thay i.
Tn ca cc bin (variable), cc hm (function), cc nhn (label) v cc i tng khc nhau do
ngi dng nh ngha gi l nh danh.
Tt c ngn ng dnh mt s t nht nh cho mc ch ring. Nhng t ny c gi l l t
kha (keywords).
Cc kiu d liu chnh ca C l character, integer, float, double v void.
Mt b t c s dng thay i kiu d liu c bn sao cho ph hp vi nhiu tnh hung a
dng. Cc b t c s dng trong C l signed, unsigned, long v short.
C h tr hai loi ton t s hc: mt ngi v hai ngi.
Ton t tng ++ v ton t gim -- l nhng ton t mt ngi. N ch hot ng trn bin kiu
s.
Ton t hai ngi s hc l +, -, *, /, %, n ch tc ng ln nhng hng s, bin hay biu thc.
Ton t phn d % ch p dng trn cc s nguyn v cho kt qu l phn d ca php chia s
nguyn.
34

Lp trnh c bn C

Kim tra tin hc tp


1

C c phn bit ch thng v hoa.

S 10 l mt _______________.

K t u ca nh danh c th l mt s.

Dng kiu _________ s tit kim b nh do n chim ch na khng gian nh so vi _________.

Kiu d liu _______ c dng ch cho trnh bin dch C bit rng khng c gi tr
c tr v.

_______ v _______ l hai nhm ton t s hc.


A. Bitwise & v |
C. Lun l AND

(True / False)

(True / False)

no

B. Mt ngi v hai ngi


D. Khng cu tr li no c

Cc ton t mt ngi s hc l __ v __.


A. ++ v -C. ^ v $

Bin v Kiu d liu

B. % v ^
D. Khng cu tr li no c

35

Bi tp t lm
1.

Chn tng ng cho ct A v B:


Ct A

Ct B

8
10.34

Tn nh danh sai

ABC

Hng s nguyn

abc

Hng k t

23

Double

12112134.86868686886

S chm ng

_A1

Tn nh danh ng

$abc
A
Hng dn : Nhiu mc trn ct A c th tng ng ti mt mc n ti ct B.
2. Tnh gi tr ca cc bin sau mi cu lnh di y:
a. int a = 4^4
b. int a = 23.34
c. a = 10
b = a + a++
d. a = -5
b = -a

36

Lp trnh c bn C

You might also like