Giáo trình ngôn ngữ C



tải về 2.34 Mb.
Chế độ xem pdf
trang20/62
Chuyển đổi dữ liệu16.03.2023
Kích2.34 Mb.
#54376
1   ...   16   17   18   19   20   21   22   23   ...   62
C ĐHQGHN

 
Cú pháp: 
?: 
Trong đó , và  là các biểu thức, nếu  có giá trị ‘đúng’ thì kết quả của 
biểu thức là ngược lại nếu có giá trị ‘sai’ thì biểu thức trả lại
Ví dụ: (a>b?a:b) 
ý nghĩa của biểu thức trên là nếu a >b thì kết quả là a ngược lại là b, tức là trả lại giá trị 
lớn nhất của a và b.


Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
 C
22
g. Phép tăng và giảm 1 
Với biểu thức dạng a = a + 1 hoặc a = a - 1 thì trong C có dạng khác viết ngắn gọn 
hơn bằng cách dùng toán tử ++ hoặc --. Mỗi toán tử này lại có hai dạng khác nhau đó là 
toán tử viết trước toán hạng (gọi là toán tử trước) và dạng toán tử viết sau toán hạng (gọi 
là toán tử sau - như vậy có 4 toán tử). 
Cú pháp:
 ++ 
++ 
 -- 
-- 
Ví dụ: int a=5,b,c=2; 
b= 
a++; 
c = ++ a +b; 
Ý nghĩa của ++ là tăng toán hạng (là biến) lên 1 đơn vị và -- là giảm toán hạng 1. Sự 
khác nhau giữa toán tử trước và toán tử sau được minh hoạ bằng ví dụ sau: 
a = 4; b = 2; 
c= b + a++ ; thì sau khi thực hiện ta có c = 6 và a = 5 
hay x = b++; thì b = 3 và x=2; 
nhưng nếu 
a = 4; b = 2; 
c= ++a +b ; thì sau khi thưc hiện ta có c = 7 và a = 5 
và x = ++b thì x=3, b=3. 
Như vậy bạn thấy sự khác nhau giữa x= b++ ;(1) và x=++b (2); là trong (1) giá trị của 
b được gán cho x trước khi nó được tăng 1, còn trong (2) thì tăng giá trị của b lên 1 sau đó 
mới gán b cho x. 
Tức là có thể hiểu: x = b++ ; 
⇔ { x = b; b = b+1;} 
còn 


++b 

⇔ { b = b+1; x = b; } 
Tương tự cho toán tử --; 
x = b-- ; 
⇔ { x = b; b = b - 1;} 
còn 


--b 

⇔ { b = b -1; x = b; } 
Vậy : 
− Trong biểu thức đơn dạng a++, ++a, b--, --b thì ý nghĩa của toán tử trước và 
sau là như nhau (cùng là tăng hay giảm 1) 
− Trong biểu thức nói chung mà có a++ (a--) hay ++b (--b) thì giá trị của a 
được sử dụng trong biểu thức trước khi a được tăng (giảm) 1, và giá trị của b 
được sử dụng sau khi b đã được tăng (giảm) 1. 


Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
 C
23
Lưu ý: Bạn có thể dùng kết hợp nhiều lần toán tử ++, -- với một biến. Vì ++,-- có 
cùng độ ưu tiên và được kết hợp từ phải sang trái do vậy các phép toán dạng ++++a, ----a 
là được phép trong khi đó a++++, a---- là không được phép. 
h. Toán tử & - lấy địa chỉ 
Các 
biến và hằng là các được lưu trong bộ nhớ và được cấp tại địa chỉ nào đó, toán tử 
& trả lại địa chỉ của một biến hay hằng. 
Cú 
pháp: 
&
hoặc & 
i. Toán tử * ( truy xuất giá trị qua con trỏ) 
Phần trên chúng ta biết * là phép nhân, nhưng nó còn có ý nghĩa là toán tử 1 ngôi với 
chức năng lấy giá trị của một thành phần thông qua con trỏ. 
Cú pháp: *  
Như vậy với một biến được cấp phát tại một vùng nhớ nào đó trong bộ nhớ thì chúng 
ta có thể truy xuất giái trị của nó thông qua tên biến hoặc qua địa chỉ (con trỏ) của nó. 
Giá 
sử pa là con trỏ và pa trỏ tới biến a (có kiểu phù hợp) thì *pa chính là giá trị của a. 
và cách truy xuất theo tên biến a hoặc qua con trỏ *pa là như nhau. 
Ví 
dụ: int a, b, c; 
int 
*p; 
p=&a; 
*p = 5; b = a + 3; c =*p -1; 
Sau các lệnh trên thì a có giá trị là 5, b là 8 và c là 4 (truy xuất a theo cách *p gọi là 
truy xuất gián tiếp thông qua con trỏ)

tải về 2.34 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   16   17   18   19   20   21   22   23   ...   62




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương