Tự học C++: Các toán 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)

Video nổi bật

Bên trong nhà máy chế tạo búp bê "người lớn" hiện đại
00:00 / --:--

TIN Công Nghệ NỔI BẬT

Những điều tuyệt đối không chia sẻ trên Facebook nếu muốn an toàn

Thậm chí khi đã cài đặt các điều khoản riêng tư rất cẩn thận, bạn vẫn có thể bị lộ các thông tin, hình ảnh nhạy cảm khi đăng chúng lên Facebook. Bởi vì, theo nghiên cứu, trong số 150 ứng dụng hàng đầu trên Facebook, có 90% ứng dụng được phép truy cập đến các thông tin trong tài khoản của bạn!

Hướng dẫn chụp ảnh của iPhone dành cho người mới sử dụng

Sở hữu trong tay một chiếc iPhone, ngoài việc sử dụng các tính năng phục vụ cho công việc cũng như giải trí, chụp ảnh gần như là điều tất yếu. Tuy nhiên, bạn đã biết cách tận dụng hết các tính năng mà camera trên iPhone có thể mang lại? Hãy cùng tham khảo bài viết dưới đây để có được những thông tin quan trọng và cần thiết.

Hướng dẫn kéo dài tuổi thọ pin cho Samsung Galaxy S6

Galaxy S6 là chiếc điện thoại cao cấp nhất của Samsung hiện nay, dù chiếc điện thoại này gây ngạc nhiên cho người dùng về thiết kế và cấu hình, tuy nhiên pin của nó lại khiến không quá nổi trội, chúng ta sẽ tìm cách tăng thời lượng pin cho chiếc điện thoại này.

Cách khắc phục máy tính xách tay bị lỗi thông dụng (phần 2)

Chúng ta lại tiếp tục xử lý khắc phục máy tính xách tay bị lỗi thông dụng trong phần 2 của bài viết này để có thể biết cách xử lý nhanh nhất khi laptop của mình không may bị dính phải những lỗi này.

Nhận xét tin Tự học C++: Các toán tử

Ý 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 đề Kinh Nghiệm 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Ó THỂ BẠN QUAN TÂM
Xem tiếp: Công Nghệ


  • Thoi su 24h306 Nhan chung moi vu ong Chan
    Thời sự 24h(30/6): Nhân chứng mới vụ ông Chấn?

    Xuất hiện nhân chứng mới, ông Chấn chưa thể nhận 7,2 tỷ?; Hình ảnh Kỳ Duyên, Mai Phương Thúy không bao giờ muốn nhìn lại; Khách ném lọ cà tại sân bay bị phạt 750 nghìn; Dân quân cầm đầu nhóm côn đồ chém người như phim...là những thông tin thời sự nổi bật trong ngày 30/6.

  • Thoi su 24h296 Tai xe kien may toc do ban dieu
    Thời sự 24h(29/6): Tài xế kiện máy tốc độ "bắn điêu"

     Nhiều Bí thư Tỉnh ủy trực tiếp kiểm tra thi THPT quốc gia; Nhạc sĩ Phan Huỳnh Điểu qua đời; Bỏ 55 triệu mua cây hồng trăm bông đẹp lòng vợ trẻ; Bị đặt bẫy, tài xế quyết kiện máy tốc độ "bắn điêu"?; 

  • Thoi su tuan qua Dai gia bi tat axit tren xe Lexus
    Thời sự tuần qua: Đại gia bị tạt axit trên xe Lexus

    VTC chính thức trực thuộc VOV; GDP tăng 6,28%, cao nhất 5 năm; Đại gia đất Cảng bị tạt a xít trên xe Lexus; Bão số 1 làm 11 người chết, mất tích; Sông Hồng đoạn qua Hà Nội bất ngờ bị lấp chui; Mẹ già ngất xỉu khi con trai "biếu" quan tài; Tiếp viên múa thoát y trong nhà hàng ở Sài Gòn ... là những thông tin thời sự nổi bật tuần qua.

  • Thoi su 24h276 Nuoc beo bun pho lam tu mo bo thoi
    Thời sự 24h(27/6): Nước béo bún phở làm từ mỡ bò thối

    Tàu hỏa BắcNam tông ôtô văng xuống hồ nước; Phát hiện thi thể sơ sinh bị vứt trong sọt rác; Nước béo bún phở làm từ mỡ bò thối... là những thông tin thời sự nổi bật trong ngày 27/6.

  • Thoi su 24h266 CSGT chi duoc dung xe 5 truong hop
    Thời sự 24h(26/6): CSGT chỉ được dừng xe 5 trường hợp

    GDP tăng 6,28%, cao nhất 5 năm; TP.HCM: Ngày 1/7 thu phí đường bộ đối với xe máy; Án mạng rúng động làng quê: Kẻ thủ ác là con rể?; CSGT chỉ được dừng xe trong 5 trường hợp; Lý giải đường sắt trên cao HN “uốn lượn" mềm mại...

  • Nhung dam cuoi dat vang gay xon xao
    Những đám cưới "dát vàng" gây xôn xao

    Hình ảnh một số cô dâu đeo đầy vàng trong đám cưới ở một số nơi ở Việt Nam không chỉ khiến nhiều người trầm trồ mà còn là tâm điểm của các cuộc tranh luận trên mạng xã hội.

  • Nu sinh tu tu vi bi tung clip sex
    Nữ sinh tự tử vì bị tung clip sex

    Chưa bao giờ chuyện lạm dụng Internet, mạng xã hội để bêu xấu, hạ nhục nhau, tung ảnh nóng, clip riêng tư của người khác lên cho bàn dân thiên hạ xem lại phổ biến như hiện nay.

  • Ha Noi sap xu ly nguoi noi tuc
    Hà Nội sắp “xử lý” người nói tục

    Để đẩy lùi nạn mất dạy trong quần chúng nhân dân, chúng ta phải trao tặng các danh hiệu cá nhân không mất dậy, gia đình không mất dậy...cho người không nói bậy.

  • Su that tro thoi mien bo thuoc me gay an
    Sự thật trò "thôi miên, bỏ thuốc mê" gây án

    Cộng đồng mạng đang lan truyền hàng loạt hình ảnh về hai người phụ nữ nhờ mở iPhone rồi thôi miên lấy trộm tài sản. PV đã tìm đến địa bàn được cho là hai người này "làm việc". ------------ Xem thêm: Sự thật trò "thôi miên, bỏ thuốc mê" gây án, http://vietbao.vn/tp/Su-that-tro-thoi-mien-bo-thuoc-me-gay-an/11824364/ Tin nhanh Việt Nam ra thế giới vietbao.vn

  • Hoa don tien dien tang
    Hoá đơn tiền điện tăng

    Thời tiết nắng nóng kỷ lục lên tới 40 – 45 độ C những ngày tháng 5, cộng với ảnh hưởng từ việc điều chỉnh tăng giá bán điện kể từ ngày 16/3 khiến cho hoá đơn tiền điện không ngừng tăng vọt.

  • Nghin le chuyen tuan qua 2106 2706
    Nghìn lẻ chuyện tuần qua (21/06 - 27/06)

    Hoàn lưu bão số 1 làm 15 người chết và mất tích; Xe khách lao xuống vực ở đèo Lò Xo; Sóng lạ đè sóng không lưu Tân Sơn Nhất; Miễn nhiệm bác sĩ giẫm chân lên giường: Nên hay không?; Mạng xã hội và ‘chiếc phanh’ của tình người; Đầu năm 2016 sẽ được hưởng BHXH một lần... là những tin tức nổi bật được dư luận quan tâm trong tuần qua.

  • Toan canh kinh te tuan 2106 27062015
    Toàn cảnh kinh tế tuần 21/06 - 27/06/2015

    Giá điện tăng bất thường được lý giải do mức sử dụng điện năng tăng khiến lượng tiêu thụ điện tăng, thiết bị đo đếm, công tơ điện có vấn đề hay sự tù mù trong cách tính của “nhà đèn”… ------------ Xem thêm: Toàn cảnh kinh tế tuần 21/06 - 27/06/2015, http://vietbao.vn/Kinh-te/Toan-canh-kinh-te-tuan-2106-27062015/2147573276/47/ Tin nhanh Việt Nam ra thế giới vietbao.vn

  • Tin An ninh Phap luat tuan qua 2106 2706
    Tin An ninh - Pháp luật tuần qua (21/06 - 27/06)

    Nữ sinh tự tử vì bị tung clip sex; Tội phạm hoạt động theo kiểu "xã hội đen"; Nạn trộm chó và những vụ xử “cẩu tặc” rúng động; Tình trạng tội phạm dùng axit để gây án; Trùm ma túy Tàng Keangnam bị bắt giữ như thế nào?; Điều khiển xe tang vật "đi nhầm" vào chốt 141;......là những tin đáng chú ý trong tuần. ------------ Xem thêm: Tin An ninh - Pháp luật tuần qua (21/06 - 27/06), http://vietbao.vn/An-ninh-Phap-luat/Tin-An-ninh-Phap-luat-tuan-qua-2106-2706/2147573264/218/ Tin nhanh Việt Nam ra thế giới vietbao.vn

  • Toan canh kinh te tuan 1406 20062015
    Toàn cảnh kinh tế tuần 14/06 - 20/06/2015

    Giá xăng tiếp tục được điều chỉnh tăng thêm 275 đồng/lít vào chiều ngày 19/6, hóa đơn tiền điện sinh hoạt tháng 5 ở Hà Nội tăng gấp đôi, gấp ba, khiến nhiều hộ dân phát hoảng,trong hơn 1 tháng lại đây lãi suất huy động có tăng trở lại khéo theo khả năng lãi suất cho vay cũng có thể điều chỉnh tăng theo, việc nhiều loại phí, lệ phí bất hợp lý “đánh” lên gia

  • Tin An ninh Phap luat tuan qua 1406 2006
    Tin An ninh - Pháp luật tuần qua (14/06 - 20/06)

    'Thánh cô cô bóc' hay căn bệnh ảo tưởng quyền lực mạng?; Những vụ bắt cóc trẻ nhỏ gây ám ảnh nhất trong lịch sử; Tình hình tội phạm ma túy diễn biến phức tạp; 'Nóng' chuyện va chạm giao thông rồi xử nhau: Kinh nghiệm xử lý; Chiếc xe gian “4 tuổi” chạm mặt cảnh sát 141;......là những tin đáng chú ý trong tuần. ------------ Xem thêm: Tin An ninh - Pháp luật tuần qua (14/06 - 20/06), http://vietbao.vn/An-ninh-Phap-luat/Tin-An-ninh-Phap-luat-tuan-qua-1406-2006/2147571368/218/ Tin nhanh Việt Nam ra thế giới vietbao.vn