vietbao

Tự học C++: Các toán tử

Bấm ngay Subscribe / Đăng Ký xem video hay mới nhất >>

Trong C++, để thao tác với chúng ta sử dụng các toán tử, đó là các từ khoá và các dấu không có trong bảng chữ cái nhưng lại có trên hầu hết các bàn phím trên thế giới. Hiểu biết về chúng là rất quan trọng vì đây là một trong những thành phần cơ bản của ngôn ngữ C++.

Toán tử gán (=)

Toán tử gán dùng để gán một giá trị nào đó cho một biến

a = 5;

gán giá trị nguyên 5 cho biến a. Vế trái bắt buộc phải là một biến còn vế phải có thể là bất kỳ hằng, biến hay kết quả của một biểu thức.

Cần phải nhấn mạnh rằng toán tử gán luôn được thực hiện từ trái sang phải và không bao giờ đảo ngược

a = b;

gán giá trị của biến a bằng giá trị đang chứa trong biến b. Chú ý rằng chúng ta chỉ gán giá trị của b cho a và sự thay đổi của b sau đó sẽ không ảnh hưởng đến giá trị của a.

Một thuộc tính của toán tử gán trong C++ góp phần giúp nó vượt lên các ngôn ngữ lập trình khác là việc cho phép vế phải có thể chứa các phép gán khác. Ví dụ:

a = 2 + (b = 5);

tương đương với

b = 5;a = 2 + b;

Vì vậy biểu thức sau cũng hợp lệ trong C++

a = b = c = 5;

gán giá trị 5 cho cả ba biến a, b và c

Các toán tử số học (+, -, *, /, %)

Năm toán tử số học được hỗ trợ bởi ngôn ngữ là:

+ cộng
- trừ
* nhân
/ chia
% lấy phần dư (trong phép chia)

Thứ tự thực hiện các toán tử này cũng giống như chúng được thực hiện trong toán học. Điều duy nhất có vẻ hơi lạ đối với bạn là phép lấy phần dư, ký hiệu bằng dấu phần trăm (%). Đây chính là phép toán lấy phần dư trong phép chia hai số nguyên với nhau. Ví dụ, nếu a = 11 % 3, biến a sẽ mang giá trị 2 vì 11 = 3*3 +2.

Các toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

Một đặc tính của ngôn ngữ C++ làm cho nó nổi tiếng là một ngôn ngữ súc tích chính là các toán tử gán phức hợp cho phép chỉnh sửa giá trị của một biến với một trong những toán tử cơ bản sau:

value += increase; tương đương với value = value + increase;
a -= 5; tương đương với a = a - 5;
a /= b; tương đương với a = a / b;
price *= units + 1; tương đương với price = price * (units + 1);

và tương tự cho tất cả các toán tử khác.

Tăng và giảm

Một ví dụ khác của việc tiết kiệm khi viết mã lệnh là toán tử tăng (++) và giảm (--). Chúng tăng hoặc giảm giá trị chứa trong một biến đi 1. Chúng tương đương với +=1 hoặc -=1. Vì vậy, các dòng sau là tương đương:

a++;
a+=1;
a=a+1;

Một tính chất của toán tử này là nó có thể là tiền tố hoặc hậu tố, có nghĩa là có thể viết trước tên biến (++a) hoặc sau (a++) và mặc dù trong hai biểu thức rất đơn giản đó nó có cùng ý nghĩa nhưng trong các thao tác khác khi mà kết quả của việc tăng hay giảm được sử dụng trong một biểu thức thì chúng có thể có một khác biệt quan trọng về ý nghĩa: Trong trường hợp toán tử được sử dụng như là một tiền tố (++a) giá trị được tăng trước khi biểu thức được tính và giá trị đã tăng được sử dụng trong biểu thức; trong trường hợp ngược lại (a++) giá trị trong biến a được tăng sau khi đã tính toán. Hãy chú ý sự khác biệt:

Ví dụ 1 Ví dụ 2
B=3;
A=++B;
// A is 4, B is 4
B=3;
A=B++;
// A is 3, B is 4

Các toán tử quan hệ ( ==, !=, >, <, >=, <= )

Để có thể so sánh hai biểu thức với nhau chúng ta có thể sử dụng các toán tử quan hệ. Theo chuẩn ANSI-C++ thì giá trị của thao tác quan hệ chỉ có thể là giá trị logic - chúng chỉ có thể có giá trị true hoặc false, tuỳ theo biểu thức kết quả là đúng hay sai.

Sau đây là các toán tử quan hệ bạn có thể sử dụng trong C++

== Bằng
!= Khác
> Lớn hơn
< Nhỏ hơn
> = Lớn hơn hoặc bằng
< = Nhỏ hơn hoặc bằng

Ví dụ:

(7 == 5) sẽ trả giá trị false
(6 >= 6) sẽ trả giá trị true

tất nhiên thay vì sử dụng các số, chúng ta có thể sử dụng bất cứ biểu thức nào. Cho a=2, b=3 và c=6

(a*b >= c) sẽ trả giá trị true.
(b+4 < a*c) sẽ trả giá trị false

Cần chú ý rằng = (một dấu bằng) lf hoàn toàn khác với == (hai dấu bằng). Dấu đầu tiên là một toán tử gán (gán giá trị của biểu thức bên phải cho biến ở bên trái) và dấu còn lại (==) là một toán tử quan hệ nhằm so sánh xem hai biểu thức có bằng nhau hay không.

Trong nhiều trình dịch có trước chuẩn ANSI-C++ cũng như trong ngôn ngữ C, các toán tử quan hệ không trả về giá trị logic true hoặc false mà trả về giá trị int với 0 tương ứng với false còn giá trị khác 0 (thường là 1) thì tương ứng với true.

Các toán tử logic (!, &&, ||)

Toán tử ! tương đương với toán tử logic NOT, nó chỉ có một đối số ở phía bên phải và việc duy nhất mà nó làm là đổi ngược giá trị của đối số từ true sang false hoặc ngược lại. Ví dụ:

!(5 == 5) trả về false vì biểu thức bên phải (5 == 5) có giá trịtrue
!(6 <= 4) trả về true vì (6 <= 4)có giá trị false
!true trả về false
!false trả về true

Toán tử logic && và || được sử dụng khi tính toán hai biểu thức để lấy ra một kết quả duy nhất. Chúng tương ứng với các toán tử logic AND và OR. Kết quả của chúng phụ thuộc vào mối quan hệ của hai đối số:

Đối số thứ nhất
a
Đối số thứ hai
b
Kết quả
a && b
Kết quả
a || b
true true true true
true false false true
false true false true
false false false false

Ví dụ:

( (5 == 5) && (3 > 6) ) trả về false ( true && false ).
( (5 == 5) || (3 > 6)) trả về true ( true || false ).

Toán tử điều kiện ( ? ).

Toán tử điều kiện tính toán một biểu thức và trả về một giá trị khác tuỳ thuộc vào biểu thức đó là đúng hay sai. Cấu trúc của nó như sau:

condition ? result1 : result2

Nếu condition là true thì giá trị trả về sẽ là result1, nếu không giá trị trả về là result2.

7==5 ? 4 : 3 trả về 37 không bằng 5
7==5+2 ? 4 : 3 trả về 47 bằng 5+2
5>3 ? a : b trả về a, vì 5 lớn hơn 3
a>b ? a : b trả về giá trị lớn hơn, a hoặc b

Các toán tử thao tác bit (&, |, ^, ~, <<, >>)

Các toán tử thao tác bit thay đổi các bit biểu diễn một biến, có nghĩa là thay đổi biểu diễn nhị phân của chúng:

Toán tử asm Mô tả
& AND Logical AND
| OR Logical OR
^ XOR Logical exclusive OR
~ NOT Đảo ngược bit
<< SHL Dịch bit sang trái
SHR Dịch bit sang phải

Các toán tử chuyển đổi kiểu

Các toán tử chuyển đổi kiểu cho phép bạn chuyển đổi dữ liệu từ kiểu này sang kiểu khác. Có vài cách để làm việc này trong C++, cách cơ bản nhất được thừa kế từ ngôn ngữ C là đặt trước biểu thức cần chuyển đổi tên kiểu dữ liệu được bọc trong cặp ngoặc đơn (), ví dụ:

int i;

float f = 3.14;

i = (int) f;

Đoạn mã trên chuyển số thập phân 3.14 sang một số nguyên (3). Ở đây, toán tử chuyển đổi kiểu là (int). Một cách khác để làm điều này trong C++ là sử dụng các constructors (ở một số sách thuật ngữ này được dịch là cấu tử nhưng tôi thấy nó có vẻ không xuôi tai lắm) thay vì dùng các toán tử: Đặt trước biểu thức cần chuyển đổi kiểu tên kiểu mới và bao bọc biểu thức giữa một cặp ngoặc đơn.

i = int ( f );

Cả hai cách chuyển đổi kiểu đều hợp lệ trong C++. Thêm vào đó ANSI-C++ còn có những toán tử chuyển đổi kiểu mới đặc trưng cho lập trình hướng đối tượng.

sizeof()

Toán tử này có một tham số, đó có thể là một kiểu dữ liệu hay là một biến và trả về kích cỡ bằng byte của kiểu hay đối tượng đó.

a = sizeof (char);

a sẽ mang giá trị 1 vì kiểu char luôn có kích cỡ 1 byte trên mọi hệ thống. Giá trị trả về của sizeof là một hằng số vì vậy nó luôn luôn được tính trước khi chương trình thực hiện.

Các toán tử khác

Trong C++ còn có một số các toán tử khác, như các toán tử liên quan đến con trỏ hay lập trình hướng đối tượng. Chúng sẽ được nói đến cụ thể trong các phần tương ứng.

(Theo OurViet Network)

Phần sau: Thứ tự ưu tiên của các toán tử

Theo dòng sự kiện:
Ngôn ngữ C (11/10/2001)
Comment :Tự học C++: Các toán tử
Ý kiến bạn đọc
Viết phản hồi
Ý kiến bạn đọc (1)  

Viết phản hồi

 
 
 
 
 
thac mac

thang 2012-09-19 16:50

   0

em muon hoi ki tu chia het trong c la gi

Phản hồi Phản hồi voi trich dan Trich dan

Bạn có thể gửi nhận xét, góp ý hay liên hệ về bài viết Tự học C++: Các toán tử bằng cách gửi thư điện tử tới Lien He Bao Viet Nam. Xin bao gồm tên bài viết Tu hoc C Cac toan tu ở dạng tiếng Việt không dấu. Hoặc Tự học C++: Các toán tử ở dạng có dấu. Bài viết trong chuyên đề của chuyên mục Công Nghệ
study C + +: Operators
In C, the operator type conversion, relational operators, basic components, the return value, equivalent to, assignment, value, logical operators, expression, action and results, we, as a variable, self-study, 5
In C + +, to work with us to use the operators, which are the keywords and the sign is not in the alphabet but has on most keyboards the world. Understanding them is very important because this is one of the basic components ...
Cách bảo vệ tài khoản iCloud để tránh bị kẻ xấu lợi dụng

Với người dùng iPhone thì tài khoản iCloud rất quan trọng, nó không chỉ chứa dữ liệu cá nhân mà còn là công cụ để tìm iPhone bị mất hay khóa máy từ xa. Một trường hợp nữa là có những kẻ xấu lợi dụng sơ hở của các cửa hàng để khóa iCloud iPhone, iPad gây rắc rối không nhỏ. Tình trạng bị "chơi khăm" như vậy trong thực tế không hề hiếm nên trong bài viết này mì

7 ứng dụng không nên bỏ lỡ trên iPhone
7 ứng dụng không nên bỏ lỡ trên iPhone

Rất nhiều ứng dụng thú vị mà có thể bạn bỏ lỡ vì chưa biết đến. Bài viết này sẽ giới thiệu tới các bạn một số ứng dụng được yêu thích trong lĩnh vực hỗ trợ học tiếng Anh, chia sẻ file, trò chơi cũng như quản lý các chuyến du lịch.

  • Thoi su 24h287 Bao quet o Ha Noi Cay do la liet
    Thời sự 24h(28/7): Bão quét ở Hà Nội: Cây đổ la liệt

    Thắt tim cảnh người cha kiệt sức gục chết giữa cánh đồng; Bão quét tới Hà Nội: Cây đè ô tô, xe máy đổ cả loạt; Góc khuất nghề đẻ thuê: Nỗi ân hận tột cùng của người đàn bà dẫn gái về cho chồng; Sập giàn giáo cao ốc Dream Home Luxury, 3 người thương vong; Vụ Formosa: 9 dòng kiểm điểm và quyết tâm của Chính phủ

  • Thoi su 24h277 co gai tre tu vong duoi song To Lich
    Thời sự 24h(27/7): cô gái trẻ tử vong dưới sông Tô Lịch

    Formosa chôn chất thải: Nghi vấn bao che sai phạm cho cán bộ các cấp; Thương bé tròn một tuổi mà phẫu thuật chân 12 lần chưa khỏi; “Người mẹ ma” ở TP HCM: 'Ước gì tôi biết vì sao mình bị tạt axit'; Nỗi đau khôn cùng của người cha chôn 12 con trong cát trắng; Vợ chết, chồng bị thương: Nạn nhân nhắn gì cho bố mẹ trước lúc mất?

  • Thoi su 24h267 An mang dau long tu viec ly hon gia hoa that
    Thời sự 24h(26/7): Án mạng đau lòng từ việc ly hôn giả hóa thật

    Sự thật sốc về cô gái “hở bạo” tiếp thị Bệnh viện thẩm mỹ Kangnam; Mẹ nạn nhân bị cưa chân phản bác kết luận của Sở Y tế; Vụ trao nhầm con: Nước mắt vẫn chưa ngừng rơi!; Người đàn ông bỏ xe bánh mỳ, nhảy sông Đà vì bị truy sát?; Bệnh nhân phải đóng trước 220 nghìn mới được đi vệ sinh ở bệnh viện

  • Thoi su 24h257 Can bo hon nguc nang Biang
    Thời sự 24h(25/7): Cán bộ hôn ngực nàng Biang

    Kẻ "gạ tình" người mẹ liên quan gì đến vụ cháu bé bị mất tích ở Long Biên?; Vụ xả thải: Bộ TNMT thông báo nóng với Formosa; Ông bố đập sữa trước cửa siêu thị: "Đã mua chịu lại còn kiếm chuyện"; Cán bộ hôn ngực nàng Biang: Xử lý đúng quy trình; Ngày con dâu bỏ đi, bố mẹ chồng khóc cạn nước mắt thương 5 cháu nhỏ

  • Thoi su 24h217 Cong ly nao cho nguoi vo mang noi dau tot cung
    Thời sự 24h(21/7): Công lý nào cho người vợ mang nỗi đau tột cùng

    Đình chỉ hay khen thưởng CSGT "giơ chân" cản người phạm luật?; Xót xa những vụ tự tử vì bệnh tật và tận cùng nghèo khó; "Rác thải Formosa tràn lan, trách nhiệm chính thuộc xã, phường"; Vụ cô gái bị chồng thiêu: Công lý nào cho người vợ đang mang nỗi đau tột cùng?; Mổ nhầm chân: chuyên môn yếu kém hay tắc trách?

  • Thoi su 24h197 Dung sung bat tre em cuop taxi
    Thời sự 24h(19/7): Dùng súng bắt trẻ em, cướp taxi

    Phía sau bản án tử của Vũ Văn Tiến: Con dại một lần, mẹ đau một đời; Hà Nội sẽ trồng cây phượng hoa màu tím, nở quanh năm; Mưa xô ngã cầu bêtông tiền tỷ: Quy trình trách nhiệm; Vụ chất thải Formosa: Doanh nghiệp nói khác Sở TNMT?; Chiếu laser Nội Bài: Phát hiện thủ phạm nhưng khó xử lý

  • Thoi su 24h187 Lo duong day gai goi chan dong showbiz
    Thời sự 24h(18/7): Lộ đường dây gái gọi chấn động showbiz

    Thực phẩm bẩn: Nghịch cảnh con người đang âm thầm giết hại nhau; Vụ chất thải Formosa: Thêm nhiều mâu thuẫn giật mình; Ân hận của người mẹ mỗi đứa con sinh ra của... một ông bố khác nhau; Bác sĩ ra chợ quyên tiền cứu bệnh nhi: Đời xấu xa sao cây táo nở hoa?; Cá hồ chết bốc mùi thối, cả khu phố bịt khẩu trang suốt ngày

  • Thoi su 24h147 Bi ban than cua bo hiep dam den mang thai
    Thời sự 24h(14/7): Bị bạn thân của bố hiếp dâm đến mang thai

    Formosa tự đổi công nghệ luyện cốc: Hành vi tội ác; Uất ức lời kể 5 ngư dân bị tàu TQ đâm chìm tàu ở Hoàng Sa; Nghi án mẹ ép con gái uống thuốc trừ sâu để cùng chết; Bàng hoàng phát hiện suốt 3 năm nuôi nhầm con của 1 gia đình ở cách nhà mình 5 km; Tiếp viên ở quán karaoke ăn mặc mát mẻ, ngồi trên đùi khách rót bia

  • Thoi su 24h137 Chong thieu song vo vi bi can nhan
    Thời sự 24h(13/7): Chồng thiêu sống vợ vì bị cằn nhằn

    Thực hư chuyện 'bố đi hát karaoke gặp đúng con gái làm dịch vụ'; "Bảo kê" xe cấp cứu: Bộ trưởng Y tế vào cuộc quá chậm?; Vụ chôn rác thải Formosa trong trang trại của Giám đốc: Có sai luật?; Tạm giữ nhóm "quái xế" cùng 20 chân dài mặc mát mẻ phục vụ karaoke; 10 năm, gần 60 ngàn tỷ đồng tham nhũng nhưng chỉ thu hồi được 4,6 ngàn tỷ

  • Ban tin Suc khoe tuan qua 247307
    Bản tin Sức khỏe tuần qua (24/7-30/7)

    Sản phụ từ chối điều trị ung thư để cứu con đã qua đời; Thực hư những cách chữa khỏi ung thư từ Đông y; 7 loại đồ ăn mà "chuyên gia ngộ độc" không bao giờ động đũa; 'Mẹ nhỏ, con to' nhờ ăn uống đúng cách khi mang bầu;... là những thông tin Sức khỏe được quan tâm nhất tuần qua.

  • Tong Hop Doi Song Tuan Qua 240730072016
    Tổng Hợp Đời Sống Tuần Qua (24/07-30/07/2016)

    Sản phẩm kém chất lượng, ảnh hưởng nghiêm trọng đến sức khỏe người tiêu dùng được phát hiện . Bài toán chi tiêu gia đình, câu chuyện tình mẫu tử thiêng liêng hay góc khuất gia đình làm ta giật mình trước lối sống ngày nay, là các thông tin nổi bật nhất tuần.

  • Toan canh kinh te tuan 2407 30072016
    Toàn cảnh kinh tế tuần (24/07- 30/07/2016)

    Phi công, tiếp viên hàng không buôn lậu vàng, CPI tháng 7 tiếp tục tăng nhẹ, VASEP đề nghị đánh thuế thương lái TQ, tỷ giá tiếp tục tĩnh lặng đến bất ngờ, TP HCM công bố 77 dự án đang thế chấp ngân hàng, nông hải sản đứng đầu bảng về chứa chất cấm, kháng sinh... Cùng với đó là những thông tin bất động sản, tài chính- ngân hàng, thị trường tiêu d

  • Nghin le chuyen tuan qua 1707 23072016
    Nghìn lẻ chuyện tuần qua 17/07 - 23/07/2016

    Đau chân trái bác sĩ mổ nhầm chân phải; CSGT giơ chân, người đi xe máy lao dải phân cách; Cán bộ giao thông trách mắng người dân vì tự ý vá đường; Bé gái 4 tuổi mất tích bất ngờ, gia đình kêu gọi giúp đỡ ... là những tin tức xã hội nổi bật được dư luận quan tâm trong tuần qua.

  • Su kien quoc te noi bat 177237
    Sự kiện quốc tế nổi bật (17/7-23/7)

    Khủng bố trung tâm mua sắm ở Munich làm 10 người thiệt mạng; Samsung xin lỗi vì những clip mua dâm của chủ tịch Lee; Trump chính thức nhận đề cử tổng thống; Trung Quốc ngang ngược tuyên bố tiếp tục cải tạo tại Biển Đông là những tin chính trong tuần qua.

  • Ban tin Suc khoe tuan qua 177 237
    Bản tin Sức khỏe tuần qua (17/7- 23/7)

    Bị thương chân trái, mổ nhầm chân phải: BV Việt Đức nói gì; Hai bé sơ sinh dính liền ở Hà Giang đã mất; Siêu âm thai bình thường, sinh con bị dị tật: Bài học nào cho bố mẹ; Vợ thờ ơ với 'chuyện ấy', lí do là ở chồng;... là những thông tin Sức khỏe được quan tâm nhất tuần qua.

  • Tong Hop Doi Song Tuan Qua 170724072016
    Tổng Hợp Đời Sống Tuần Qua (17/07-24/07/2016)

    Hàng loạt những sản phẩm kém chất lượng, ảnh hưởng nghiêm trọng đến sức khỏe người tiêu dùng được phát hiện . Bài toán chi tiêu gia đình, cùng những câu chuyện gia đình, vụ đánh ghen ầm ĩ làm ta giật mình trước lối sống ngày nay, là các thông tin nổi bật nhất tuần.

  • Toan canh kinh te tuan 1707 23072016
    Toàn cảnh kinh tế tuần (17/07 - 23/07/2016)

    'Đại án' 9000 tỷ đồng tại Ngân hàng Xây dựng, lương của các sếp tập đoàn gần nửa tỷ đồng, giá xăng điều chỉnh giảm mạnh, vấn nạn cà phể bẩn, tăng trưởng tín dụng tiếp tục có con số mới ... Cùng với những thông tin về tài chính- ngân hàng, bất động sản, thị trường tiêu dùng..là những tin tức - sự kiện kinh tế nổi bật tuầ

  • Nghin le chuyen tuan qua 1007 16072016
    Nghìn lẻ chuyện tuần qua 10/07 - 16/07/2016

    Formosa chôn 100 tấn chất thải tại Hà Tĩnh; Ngư dân bàng hoàng kể tàu TQ tông chìm tàu cá ở Hoàng Sa; Cô giáo Sài Gòn bị tố tán tỉnh nam sinh lớp 8; 3 năm nuôi nhầm con của 1 gia đình ở cách nhà mình 5 km ... là những tin tức xã hội nổi bật được dư luận quan tâm trong tuần qua.