Bài giảng Lập trình C - Chương 3: Các khai báo, biểu thức, khối lệnh cung cấp cho người học các kiến thức: Các khai báo, biểu thức, khối lệnh. Đây là tài liệu hữu ích dành cho các bạn sinh viên đang theo học và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.
Trang 1Ch ươ ng 3 Các khai báo, bi u th c, kh i l nh ể ứ ố ệ
I Các khai báo
II Bi u th c ể ứ
III Kh i l nh ố ệ
Trang 2I.1 Khai báo s d ng th vi n hàm ử ụ ư ệ
Các trình biên d ch C có s n r t nhi u ch ng trình ị ẵ ấ ề ươcon (g i là hàm), các hàm này đ trong các th vi n ọ ể ư ệhàm khác nhau Mu n s d ng hàm nào ta ph i khai ố ử ụ ảbáo s d ng th vi n hàm ch a hàm đó.ử ụ ư ệ ứ
Cú pháp khai báo nh sau:ư
#include<tên t p header> ệ
ho c #include “tên t p header” ặ ệ
Tên t p header c a th vi n hàm có đuôi h ệ ủ ư ệ
Ví d :ụ #include<iostream.h> //Khai báo s d ng các ch ng ử ụ ươ trình vào/ra
Trang 3I.2 Khai báo h ng ằ
Khai báo h ng là đ t tên cho m t giá tr c ằ ặ ộ ị ụ thể
Cú pháp khai báo h ng: ằ
#define Tên_h ng Giá_tr _c a_h ngằ ị ủ ằ
Ví d :ụ #define PI 3.141593
Khai báo h ng có th đ t b t kỳ đâu trong ằ ể ặ ấ
ch ng trình Khi biên d ch ch ng trình, t t ươ ị ươ ấ
c tên h ng đ c s d ng sau dòng khai báo ả ằ ượ ử ụ
Trang 4I.3 Khai báo bi n ế
Bi n là ô nh trong b nh trong (RAM) c a máy ế ớ ộ ớ ủtính dùng đ c t ch a d li u.ể ấ ứ ữ ệ
Khai báo bi n là đ t tên cho ô nh và xác đ nh ki u ế ặ ớ ị ể
d li u cho ô nh Ô nh có ki u d li u nào thì ch ữ ệ ớ ớ ể ữ ệ ỉ
ch a đ c giá tr c a ki u d li u đó Khai báo bi n ứ ượ ị ủ ể ữ ệ ế
có th đ b t kỳ đâu trong ch ng trình.ể ể ấ ươ
Ví d :ụ int a; //bi n tên là a, có ki u s nguyên int ế ể ố
N u có nhi u bi n cùng ki u thì có th khai báo cùng nhau, ế ề ế ể ể
gi a các tên bi n phân tách nhau b i d u ph y ữ ế ở ấ ẩ
Ví d :ụ float a,b,c;
Trang 5I.3 Khai báo bi n (ti p) ế ế
Khi khai báo bi n có th kh i t o giá tr ban ế ể ở ạ ị
đ u cho bi n b ng đ t d u b ng và m t giá tr ầ ế ằ ặ ấ ằ ộ ị nào đó cách ngay sau tên bi n ế
Ví d : ụ int a,b=20,c,d=35;
Trang 7II.1 Bi u th c ể ứ
Bi u th c là s k t h p các giá tr b ng các ể ứ ự ế ợ ị ằ phép toán đ có đ c m t giá tr m i Các giá ể ượ ộ ị ớ
tr đem ra k t h p đ c g i là toán h ng ị ế ợ ượ ọ ạ Toán h ng có th là h ng, bi n, hàm ạ ể ằ ế
Trang 10II.3 Phép toán so sánh và logic
Các phép toán so sánh và logic cho ta giá tr đúng ị(có giá tr b ng 1) ho c sai (có giá tr b ng 0).ị ằ ặ ị ằ
Trang 11II.3 Phép toán quan h và logic (ti p) ệ ế
Trang 12II.4 Phép toán tăng gi m ả
C++ có hai phép toán m t ngôi đ tăng và gi m giá ộ ể ả
Phép toán ++ và có th đ ng tr c ho c sau toán ể ứ ướ ặ
h ng N u đ ng tr c thì toán h ng c a nó s đ c ạ ế ứ ướ ạ ủ ẽ ượtăng/gi m tr c khi nó đ c s d ng, n u đ ng sau ả ướ ượ ử ụ ế ứthì toán h ng c a nó s đ c tăng/gi m sau khi nó ạ ủ ẽ ượ ả
đ c s d ng.ượ ử ụ
Trang 13II.5 Th t u tiên c a các phép toán ứ ự ư ủ
Khi trong m t bi u th c có ch a nhi u phép toán thì ộ ể ứ ứ ềcác phép toán đ c th c hi n theo th t u tiên: ượ ự ệ ứ ự ưCác phép toán có m c u tiên cao th c hi n tr c, ứ ư ự ệ ướcác phép toán cùng m c u tiên đ c th c hi n t ứ ư ượ ự ệ ừtrái qua ph i ho c t ph i qua trái.ả ặ ừ ả
B ng th t u tiên các phép toán: Các phép toán ả ứ ự ưcùng lo i cùng m c u tiên Các phép toán lo i 1 có ạ ứ ư ạ
m c u tiên cao nh t, r i đ n các phép toán lo i 2, ứ ư ấ ồ ế ạ3,… Các phép toán lo i 2 (phép toán m t ngôi), 14 ạ ộ(phép toán đi u ki n) và 15 (phép toán gán) k t h p ề ệ ế ợ
t ph i qua trái, các phép toán còn l i k t h p t trái ừ ả ạ ế ợ ừ
Trang 14II.5 Th t u tiên c a các phép toán (ti p) ứ ự ư ủ ế
TT Lo i phép toán ạ Phép toán Ý nghĩa
[ ] ->
::
L i g i hàm, d u ngo c ờ ọ ấ ặ Truy nh p ph n t m ng ậ ầ ử ả Truy nh p gián ti p ậ ế
Truy nh p tr c ti p ậ ự ế Truy nh p tên mi n ậ ề
2 Phép toán 1 ngôi !
~ + - ++
Trang 15II.5 Th t u tiên c a các phép toán ( ứ ự ư ủ ti p ế )
TT Lo i phép toán ạ Phép toán Ý nghĩa
2 Phép toán 1 ngôi &
* sizeof new delete (Ki u dl) ể
L y đ a ch bi n ấ ị ỉ ế Truy nh p qua con tr ậ ỏ Cho kích th c toán h ng ướ ạ
C p phát b nh đ ng ấ ộ ớ ộ Giái phóng b nh ộ ớ Phép ép ki u d li u ể ữ ệ
Trang 175 Th t u tiên c a các phép toán ( ứ ự ư ủ ti p ế )
TT Lo i phép toán ạ Phép toán Ý nghĩa
9 Phép toán v bit ề & Phép AND bit
10 Phép toán v bit ề ^ Phép XOR bit
11 Phép toán v bit ề | Phép OR bit
12 Phép toán logic && Phép AND logic
13 Phép toán logic || Phép OR logic
14 Phép toán đi u ki n ề ệ ? : Ví d : a ? x : y //n u a ụ ế
đúng thì b ng x, còn ằ không b ng y ằ
Trang 18Phép gán chia Phép gán chia l y ph n d ấ ầ ư Phép gán c ng ộ
Phép gán trừ Phép gán AND bit Phép gán XOR bit Phép gán OR bit Phép gán d ch trái bit ị Phép gán d ch ph i bit ị ả
Trang 20Cho lnxCho log10xCho yx
Cho căn b c 2 c a xậ ủ
Trang 21L nh gán này đ a giá tr c a bi u th c bên ệ ư ị ủ ể ứ
ph i vào bi n bên trái V trái c a phép ả ế ế ủ gán ch có th là bi n và ch m t mà thôi ỉ ể ế ỉ ộ
Ví d : ụ a = 2*x*x + 3*x + 1;
Trang 22Bài gi ng Ngôn ng C - Ch ả ữ ươ ng 03 - GV Ngô Công Th ng ắ 22
Ví d : ụ a += 2;
L nh gán này đem giá tr c a bi n k t h p ệ ị ủ ế ế ợ
v i giá tr c a bi u th c theo phép toán r i ớ ị ủ ể ứ ồ
đ a k t qu vào bi n, t c là th c hi n phép ư ế ả ế ứ ự ệ toán tr c r i m i gán ướ ồ ớ
Trang 23II.7 Câu l nh gán và bi u th c gán (ti p) ệ ể ứ ế
Ví d :ụ sau l nh a = b = 5; thì a và b s b ng 5 vì bi u th c gán ệ ẽ ằ ể ứ
đ a 5 vào b còn l nh gán đ a giá tr c a bi u th c gán b=5 ư ệ ư ị ủ ể ứ vào a.
Trang 24II.8 Bi u th c đi u ki n ể ứ ề ệ
Bi u th c đi u ki n là bi u th c có d ng:ể ứ ề ệ ể ứ ạ
e1 ? e2 : e3trong đó e1, e2, e3 là các bi u th c nào đó.ể ứ
Giá tr c a bi u th c đi u ki n b ng giá tr c a e2 ị ủ ể ứ ề ệ ằ ị ủ
n u e1 đúng (có giá tr khác 0) và b ng giá tr c a ế ị ằ ị ủe3 n u e1 sai (có giá tr b ng 0).ế ị ằ
Bi u th c đi u ki n th c s là m t bi u th c, b i ể ứ ề ệ ự ự ộ ể ứ ở
v y ta có th s d ng nó nh b t kỳ m t bi u th c ậ ể ử ụ ư ấ ộ ể ứnào khác
Ví d :ụ bi u th c (a > b) ? a : b s cho giá tr a n u a ể ứ ẽ ị ế
l n h n b, còn không cho giá tr b.ớ ơ ị
Trang 25II.9 Chuy n đ i ki u giá tr ể ổ ể ị
Vi c chuy n đ i ki u giá tr th ng di n m t cách ệ ể ổ ể ị ườ ễ ộ
t đ ng trong hai tr ng h p sau:ự ộ ườ ợ
Khi bi u th c có các toán h ng khác ki u ể ứ ạ ể
Khi gán m t giá tr ki u này cho m t bi n ki u khác ộ ị ể ộ ế ể
Chuy n đ i ki u trong bi u th c: Khi hai toán h ng ể ổ ể ể ứ ạtrong m t phép toán có ki u khác nhau thì ki u th p ộ ể ể ấ
h n s đ c nâng thành ki u cao h n K t qu thu ơ ẽ ượ ể ơ ế ả
đ c m t giá tr có ki u cao h n.ượ ộ ị ể ơ
Ví d :ụ gi a int và long thì int chuy n thành longữ ể
Trang 269 Chuy n đ i ki u giá tr (ti p) ể ổ ể ị ế
Chuy n đ i ki u khi gán: Giá tr c a v ph i ể ổ ể ị ủ ế ả
đ c chuy n sang ki u c a v trái ượ ể ể ủ ế
Ta cũng có th th c hi n chuy n đ i ki u ể ự ệ ể ổ ể theo ý mu n b ng toán t ép ki u, có d ng: ố ằ ử ể ạ
Ví d : (int) x (float)(a+b) ụ
Trang 27III Kh i l nh ố ệ
Nhi u l nh đ t gi a d u ngo c { và } t o thành m t ề ệ ặ ữ ấ ặ ạ ộ
kh i l nh.ố ệ
{ a=2;
b=3;
cout<<a<<’ ’<<b;
}
C++ coi m t kh i l nh nh m t câu l nh riêng l ộ ố ệ ư ộ ệ ẻ
B i v y ch nào vi t đ c m t câu l nh thì ch đó ở ậ ỗ ế ượ ộ ệ ỗ
vi t cũng đ t đ c m t kh i l nh Sau d u ngo c } ế ặ ượ ộ ố ệ ấ ặ
c a kh i l nh không có d u ch m ph y.ủ ố ệ ấ ấ ẩ
Trang 28III Kh i l nh (ti p) ố ệ ế
Bên trong m t kh i l nh có th ch a các kh i l nh ộ ố ệ ể ứ ố ệkhác S l ng nhau này không b h n ch L u ý r ng ự ồ ị ạ ế ư ằthân c a m t hàm cũng là m t kh i l nh, đó là kh i ủ ộ ộ ố ệ ố
l nh ch a các kh i l nh bên trong nó và không kh i ệ ứ ố ệ ố
bi n khai báo bên trong nó m i đ c hình thành và ế ớ ượ
đ c c p phát b nh Các bi n này ch t n t i trong ượ ấ ộ ớ ế ỉ ồ ạ
th i gian máy làm vi c bên trong kh i l nh và chúng s ờ ệ ố ệ ẽ
l p t c bi n m t ngay sau khi máy ra kh i kh i l nh.ậ ứ ế ấ ỏ ố ệ