Professional Documents
Culture Documents
CC KIU D LIU C BN
Ging vin: V QUC HONG (vqhoang@fit.hcmus.edu.vn)
Ni dung trnh by
2
Kiu d liu Phn loi kiu d liu Cc kiu d liu c bn trong C/C++ Hng trc kin trong C/C++ Kiu d liu ca biu thc p kiu
Kiu d liu c th: ci t c th trong cc ngn ng lp trnh Kiu d liu tru tng: kiu chung, c th c ci t c th thnh cc kiu d liu c th
Dng tru tng nht gi l cu trc d liu tru tng (abstract data structure)
Theo mc h tr:
Kiu c sn (built-in type): kiu do ngn ng lp trnh h tr sn Kiu do ngi dng nh ngha (user-defined type): kiu do lp trnh vin xy dng
Cc kiu d liu c bn trong C/C++ rt gn gi vi cc kiu my Cc thao tc trn cc kiu ny c chuyn gn nh trc tip thnh cc ch th my D liu ca cc kiu ny thng c gi l gi tr (value) L nn tng xy dng nn cc kiu khc
Cc kiu s nguyn trong C/C++ phn ra c du, khng du v theo kch thc (s bt lu tr)
Kch thc 1 byte 2 byte 4 byte 8 byte Kiu (signed) char unsigned char (signed) short unsigned short (signed) int / (singned) long unsigned int / unsigned long (signed) long long unsigned long long Phm vi gi tr -27 .. 27 1 0 .. 28 1 -215 .. 215 1 0 .. 216 1 -231 .. 231 1 0 .. 232 1 -263 .. 263 1 0 .. 264 1
Cc kiu s thc trong C/C++ l kiu du chm ng (floating-point) theo nh dng ca IEEE
Kch thc T kha 4 byte 8 byte 10 byte float double long double Gi tr nh nht 10 38 10-308 10-4932 Gi tr ln nht 1038 10308 104932
C/C++ khng c kiu k t ring m dng kiu char (s nguyn 1 byte) K t tng ng vi s nguyn qua bng m ASCII, l bng tng ng t tp s [0, .., 255] n tp k t chun ASCII C/C++ cng khng c kiu chui ring m dng mng cc k t kt thc bng k t \0 biu din chui
C khng c kiu lun l ring m dng cc gi tr s nh l gi tr lun l: 0 l false v khc 0 l true Cc biu thc quan h (==, !=, >, >=, <, <=) cho gi tr 1 ng vi true v gi tr 0 ng vi false C++ cung cp kiu lun l bool nhng c x l bn di nh l kiu s nguyn
Hng (trc kin) l phng tin ca ngn ng m t mt gi tr xc nh ca mt kiu d liu Hng nguyn: 123, -123,
Kiu int Thm hu t l cho kiu long v u cho kiu khng du S bt phn (c s 8): 0123, S thp lc phn: 0x123,
Hng k t: a, \n,
Kiu char: gi tr nguyn, l m ASCII ca k t tng ng (0 l 48) c t trc tip m ASCII: \x30 l 48 l 0, Cc k t c bit: \n, \t, \\, K t null: \0 (m ASCII l 0)
Hng lit k: enum boolean { false, true }; enum day { Mon = 2, Tue, };
Mi hng i din cho mt gi tr nguyn:
false = 0, true = 1 Mon = 2, Tue = 3,
L vic chuyn mt gi tr (d liu) t kiu ny (kiu ngun) sang kiu khc (kiu ch) Phn loi
Theo mc :
n gin: cht ngn, ni rng Phc tp: i nh dng
Theo yu cu:
Ngm nh (implicit) Tng minh (explicit)
p kiu/chuyn kiu
17
Kh an ton cho chng trnh int a = 10 + 0.5; //10 chuyn thnh double c 10.0 //10.0 + 0.5 c 10.5 //10.5 chuyn thnh int c 10 //a = 10
Do lp trnh vin yu cu tng minh bng php p kiu: (kiu) gi_tr Thng lm mt mt d liu Lp trnh vin t chu trch nhim double f = 3/2; //3/2 c 1, f=1.0 double f = 3/(double)2; //chuyn kiu tng minh 2 thnh double c 2.0 //chuyn kiu ngm nh 3 thnh 3.0 //3.0/2.0 c 1.5 //f=1.5
20
Hi v p