Thứ Tư, 28 Tháng Chín 2022
Trang chủLập trìnhLập trình C/C++Biến và Toán tử trong ngôn ngữ lập trình C

Biến và Toán tử trong ngôn ngữ lập trình C

DÁNH SÁCH BÀI VIẾT
Lập trình là gì? Một số khái niệm trong lập trình
Cài đặt IDE Dev C++ – Môi trường lập trình C/C++
Làm quen với ngôn ngữ C – Chương trình Hello World
Những cú pháp cơ bản
Các kiểu dữ liệu
Biến và Toán tử
Vòng lặp for, while và do…while
Câu lệnh điều kiện if else
Cấu Trúc Rẽ Nhánh Switch … Case
Từ khóa break và continue
Mảng
Hàm
Tham biến và Tham trị
Chuỗi ký tự
Một số hàm xử lý chuỗi
Con trỏ
Đọc ghi file
Struct – Dữ liệu kiểu cấc trúc

Biến trong C

Biến là vùng bộ nhớ được cấp phát dùng để lưu trữ giá trị cho một kiểu dữ liệu nào đó tại một thời điểm nhất định và nó được truy xuất thông qua một tên đã được khai báo cho biến đó, một biến trong ngôn ngữ lập trình C trước khi được sử dụng nó phải được khai báo ở đầu mỗi khối lệnh.

Tên của biến có thể bao gồm chữ cái, chữ số và dấu gạch dưới (_), nhưng nó phải bắt đầu bằng ký tự chữ cái hoặc dấu gạch dưới. Chữ hoa và chữ thường là hai đối tượng phân biệt bởi vì C là ngôn ngữ phân biệt chữ hoa – chữ thường. Dựa vào những loại cơ bản giải thích ở chương trước, có những loại kiểu của biến cơ bản như sau:

KiểuMiêu tả
charLà biến số nguyên, có kích cỡ 1 byte.
intLà kiểu cho số tự nhiên.
floatGiá trị dấu chấm động độ chính xác đơn.
doubleGiá trị dấu chấm động độ chính xác kép.
voidĐại diện cho loại không có kiểu.
  • Cú pháp khai báo biến: Kiểu_dữ liệu Tên_biến; trong đó Kiểu_dữ liệu sẽ xác định kiểu của dữ liệu và tên biến đó lưu trữ, Tên_biến  là một định danh được gán cho vùng nhớ chứa biến và dùng để truy xuất giá trị của biến, dấu “;” dùng để xác định sự kết thúc của câu lệnh khai báo biến.
  • Ví dụ : int integer1; Thì trình biên dịch sẽ cấp cho chương trình một khoảng bộ nhớ (2 Bytes) có tên tà integer1 dùng để lưu trữ giá trị của một số nguyên nào đó.
  • Trong một dòng lệnh ta có thể khai báo nhiều biến cùng kiểu bằng các phân tách các biến đó bởi dấu phẩy “,” theo cú pháp như sau :
    • Kiểu_dữ liệu Tên_biến_1, Tên_biến_2, Tên_biến_1 …, Tên_biến_n;
    • Ví dụ :   int integer1, integer2, integer3;
  • Gắn giá trị cho biến, gắn trực tiếp khi khai báo: vd: int a = 5, hoặc có thể gắn giá trị biến khi cần sử dụng: ví dụ; int a; a = 5;

Toán tử trong C

Toán tử là công cụ dùng để thực hiện các phép tính hoặc chức năng với dữ liệu trong lập trình, trong ngôn ngữ C hỗ trợ gồm một số kiểu toán tử sao:

  • Toán tử số học
  • Toán tử quan hệ
  • Toán tử logic
  • Toán tử so sánh bit
  • Toán tử gán
  • Toán tử hỗn hợp

Toán tử số học trong C

Giả sử biến A có giá trị 10 và biến B có giá trị 20:

Toán tửMiêu tảVí dụ
+Thêm hai toán hạngA + B sẽ cho kết quả là 30
Trừ giá trị toán hạng hai từ toán hạng đầuA – B sẽ cho kết quả là -10
*Nhân hai toán hạngA * B sẽ cho kết quả là 200
/Chia lấy phần nguyên hai toán hạngB / A sẽ cho kết quả là 2
%Chia lấy phần dưB % A sẽ cho kết quả là 0
++Lượng gia giá trị toán hạng thêm 1 đơn vịA++ sẽ cho kết quả là 11
Lượng giảm giá trị toán hạng một đơn vịA– sẽ cho kết quả là 9

Toán tử quan hệ

Giả sử rằng biến A có giá trị 10 và biến B có giá trị 20, ta có:

Toán tửMiêu tảVí dụ
==Kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu bằng thì điều kiện là true.(A == B) là không đúng.
!=Kiểm tra 2 toán hạng có giá trị khác nhau hay không. Nếu không bằng thì điều kiện là true.(A != B) là true.
>Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn toán hạng bên phải hay không. Nếu lớn hơn thì điều kiện là true.(A > B) là không đúng.
<Kiểm tra nếu toán hạng bên trái nhỏ hơn toán hạng bên phải hay không. Nếu nhỏ hơn thì là true.(A < B) là true.
>=Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không. Nếu đúng là true.(A >= B) là không đúng.
<=Kiểm tra nếu toán hạng bên trái có giá trị nhỏ hơn hoặc bằng toán hạng bên phải hay không. Nếu đúng là true.(A <= B) là true.

Toán tử logic

Giả sử biến A có giá trị 1 và biến B có giá trị 0:

Toán tửMiêu tảVí dụ
&&Được gọi là toán tử logic AND (và). Nếu cả hai toán tử đều có giá trị khác 0 thì điều kiện trở lên true.(A && B) là false.
||Được gọi là toán tử logic OR (hoặc). Nếu một trong hai toán tử khác 0, thì điều kiện là true.(A || B) là true.
!Được gọi là toán tử NOT (phủ định). Sử dụng để đảo ngược lại trạng thái logic của toán hạng đó. Nếu điều kiện toán hạng là true thì phủ định nó sẽ là false.!(A && B) là true.

Toán tử so sánh bit

Toán tử so sánh bit làm việc trên đơn vị bit, tính toán biểu thức so sánh từng bit. Giả sử ta có biến A có giá tri 60 và biến B có giá trị 13, ta có bảng sau:

Toán tửMiêu tảVí dụ
&Toán tử AND (và) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong cả hai toán hạng.(A & B) sẽ cho kết quả là 12, tức là 0000 1100
|Toán tử OR (hoặc) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong một hoặc hai toán hạng.(A | B) sẽ cho kết quả là 61, tức là 0011 1101
^Toán tử XOR nhị phân sao chép bit mà nó chỉ tồn tại trong một toán hạng mà không phải cả hai.(A ^ B) sẽ cho kết quả là 49, tức là 0011 0001
~Toán tử đảo bit (đảo bit 1 thành bit 0 và ngược lại).(~A ) sẽ cho kết quả là -61, tức là 1100 0011.
<<Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải.A << 2 sẽ cho kết quả 240, tức là 1111 0000 (dịch sang trái hai bit)
>>Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải.A >> 2 sẽ cho kết quả là 15, tức là 0000 1111 (dịch sang phải hai bit)

Toán tử gán

Đây là những toán tử gán được hỗ trợ bởi ngôn ngữ C:

Toán tửMiêu tảVí dụ
=Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái.C = A + B sẽ gán giá trị của A + B vào trong C
+=Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái.C += A tương đương với C = C + A
-=Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái.C -= A tương đương với C = C – A
*=Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái.C *= A tương đương với C = C * A
/=Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái.C /= A tương đương với C = C / A
%=Lấy phần dư của phép chia toán hạng trái cho toán hạng phải và gán cho toán hạng trái.C %= A tương đương với C = C % A
<<=Dịch trái toán hạng trái sang số vị trí là giá trị toán hạng phải.C <<= 2 tương đương với C = C << 2
>>=Dịch phải toán hạng trái sang số vị trí là giá trị toán hạng phải.C >>= 2 tương đương với C = C >> 2
&=Phép AND bitC &= 2 tương đương với C = C & 2
^=Phép OR loại trừ bitC ^= 2 tương đương với C = C ^ 2
|=Phép OR bit.C |= 2 tương đương với C = C | 2

Các toán tử hỗn hợp ↦ sizeof & ternary

Có một số toán tử hỗn hợp quan trọng là sizeof và ? : được hỗ trợ bởi ngôn ngữ C.

Toán tửMiêu tảVí dụ
sizeof()Trả lại kích cỡ của một biếnsizeof(a), với a là integer, thì sẽ trả lại kết quả là 4.
&Trả lại địa chỉ của một biến.&a; sẽ cho địa chỉ thực sự của biến a.
*Trỏ tới một biến.*a; sẽ trỏ tới biến a.
? :Biểu thức điều kiệnNếu điều kiện là true ? thì giá trị X : Nếu không thì giá trị Y

Thứ tự ưu tiên toán tử trong C

Thứ tự ưu tiên toán tử trong C xác định cách biểu thức được tính toán. Ví dụ, toán tử nhân có quyền ưu tiên hơn toán tử cộng, và nó được thực hiện trước.

Ví dụ, x = 7 + 3 * 2; ở đây, x được gán giá trị 13, chứ không phải 20 bởi vì toán tử * có quyền ưu tiên cao hơn toán tử +, vì thế đầu tiên nó thực hiện phép nhân 3 * 2 và sau đó thêm với 7.

Bảng dưới đây liệt kê thứ tự ưu tiên của các toán tử. Các toán tử với quyền ưu tiên cao nhất xuất hiện trên cùng của bảng, và các toán tử có quyền ưu tiên thấp nhất thì ở bên dưới cùng của bảng. Trong một biểu thức, các toán tử có quyền ưu tiên cao nhất được tính toán đầu tiên.

Loại Toán tử Thứ tự ưu tiên 
Postfix () [] -> . ++ – –  Trái sang phải 
Unary + – ! ~ ++ – – (type)* & sizeof Phải sang trái 
Tính nhân * / % Trái sang phải 
Tính cộng + – Trái sang phải 
Dịch chuyển << >> Trái sang phải 
Quan hệ < <= > >= Trái sang phải 
Cân bằng == != Trái sang phải 
Phép AND bit Trái sang phải 
Phép XOR bit Trái sang phải 
Phép OR bit Trái sang phải 
Phép AND logic && Trái sang phải 
Phép OR logic || Trái sang phải 
Điều kiện ?: Phải sang trái 
Gán = += -= *= /= %=>>= <<= &= ^= |= Phải sang trái 
Dấu phảy Trái sang phải 
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x