ตัวดำเนินการ

ตัวดำเนินการจะถูกใช้กับตัวแปรและค่าคงที่ในการดำเนินการบางอย่าง เช่น การดำเนินการทางคณิตศาสตร์ ในภาษา C มีตัวดำเนินการประเภทต่างๆ ที่ทำหน้าที่แตกต่างกันไป

ข้างล่างนี้เป็นรายการของตัวดำเนินการในภาษา C

  • Assignment operator
  • Arithmetic operators
  • Compound assignment
  • Increment and decrement
  • Relational and comparison operators
  • Logical operators
  • Bitwise operators

Assignment operator

ตัวดำเนินการกำหนดค่า ในภาษา C ใช้สัญลักษณ์เท่ากับ = มันถูกใช้เพื่อกำหนดค่าให้กับตัวแปรหรือค่าคงที่

a = 2;
b = 3;
c = a + b;

ในตัวอย่างนี้ เราได้สร้างสามตัวแปรและกำหนดค่า 2 ให้กับตัวแปร a 3 ให้กับตัวแปร b และผลรวมของ a และ b ให้กับตัวแปร c ตามลำดับ

Arithmetic operators ( +, -, *, /, % )

ตัวดำเนินการทางคณิตศาสตร์ คือตัวดำเนินการที่ใช้เพื่อกระทำการดำเนินการทางคณิตศาสตร์ระหว่างตัวแปรหรือค่าคงที่

ตารางข้างล่างนี้คือตัวดำเนินการทางคณิตศาสตร์ในภาษา C

SymbolNameExample
+Additionc = a + b
-Subtractionc = a - b
*Multiplicationc = a * b
/Divisionc = a / b
%Moduloc = a % b

มาดูตัวอย่างการใช้ตัวดำเนินการทางคณิตศาสตร์

#include <iostream>

using namespace std;

int main () {
int a = 5;
int b = 10;
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl;
cout << "a % b = " << a % b << endl;
}

เมื่อรันโปรแกรม มันจะได้ผลัพธ์ดังนี้

a + b = 15
a - b = -5
a * b = 50
a / b = 0
a % b = 5

Compound assignment (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

Compound assignmen คือตัวดำเนินการที่ใช้เพื่ออัพเดทหรือแก้ไขค่าปัจจุบันของตัวแปรโดยการกระทำทางคณิตศาสตร์และใช้ตัวดำเนินการกำหนดค่าร่วมด้วย

ข้างล่างนี้เป็นตารางของ compound assignment operators ในภาษา C

OperatorExampleEquivalent to
+=a += 2;a = a + 2
-=a -= 2;a = a - 2
*=a *= 2;a = a * 2
/=a /= 2;a= a / 2
%=a %= 2;a = a % 2
>>=a >>= 2;a = a >> 2
<<=a <<= 2a = a << 2
&=a & = 2;a = a & 2
^=a ^= 2;a= a ^ 2
|=a |= 2;a = a | 2

มาดูตัวอย่างของการใช้งานของตัวดำเนินการ compound assignment

#include <stdio.h>

int main () {
int x = 10;
int y = 2;
x += 10; //equivalent to x = x + 10
y -= 2; //equivalent to y = y - 2
printf("x = %d, y = %d", x, y);
return 0;
}

ในตัวอย่าง นั้นเป็นรูปแบบอย่างสั้นในการดำเนินการทางคณิตศาสตร์ของมัน และมันจะได้ผลลัพธ์ดังนี้

x = 20, y = 0

Increment and decrement (++, --)

ตัวดำเนินการเพิ่มและลดค่า คือตัวดำเนินการที่ใช้เพื่อบวกหรือลบค่าออกจากตัวแปรโดย 1 โดยการเพิ่มเครื่องหมาย ++ หรือ-- ใส่ข้างหน้าหรือข้างหลังตัวแปร ซึ่งมีรูปแบบการใช้ดังนี้

identifier++

มาดูตัวอย่างของการใช้ตัวดำเนินการเพิ่มและลดค่า

#include <stdio.h>

int main () {
int a = 1;
int b = 10;
a++;
b--;
printf("a=%d, b=%d", a, b);
return 0;
}

เมื่อเรารันโปรแกรม นี่เป็นผลลัพธ์ที่เราจะได้

a=2, b=9

เหมือนที่คุณเห็นในตัวอย่าง มันเป็นรูปบบอย่างสั้นของ a = a + 1 และ b = b - 1 มันมักจะใช้กับคำสั่ง for loop เพื่อเพิ่มของการรัน index หรือตำแหน่ง index ของอาเรย์

และยังมีรูปแบบอื่นของตัวดำเนินการนี้คือ prefix เช่น ++a --b โดยมันหมายถึงจะมีการเพิ่มหรือลดค่าก่อนที่จะมีการประมวลผลคำสั่งปัจจุบัน

Relational และ comparison operators ( ==, !=, >, <, >=, <= )

ตัวดำเนินการความสัมพันธ์และเปรียบเทียบ คือตัวดำเนินการที่ถูกใช้เพื่อประเมินค่า true และ false ระหว่างสองตัวถูกดำเนินการ ซึ้งขึ้นกับเงื่อนไขและความสัมพันธ์ของมัน

ข้างร่างนี้เป็นรายการของตัวดำเนินการ relational และตัวดำเนินการเปรียบเทียบ

OperaterExampleResult
==a == btrue if a equal to b, otherwise false
!=a != btrue if a not equal to b, otherwise false
<a < btrue if a less than b, otherwise false
>a > btrue if a greater than b, otherwise false
<=a <= btrue if a less than or equal to b, otherwise false
>=a >= btrue if a greater than or equal to b, otherwise false

ตัวดำเนินการเหล่านี้ถูกใช้ เช่น เพื่อเปรียบเทียบค่าระหว่างตัวแปรว่าเท่ากันหรือไม่ หรือเปรียบการมากกว่าน้อยกว่าหรือค่าในตัวแปร และผลลัพธ์ของการเปรียบเทียบจะเป็น true และ false

#include <stdio.h>

int main () {
int a = 5;
int b = 10;

if (a == b) {
printf ("a and b are equal");
} else {
printf ("a and b are not equal");
}

return 0;
}

Logical operators ( !, &&, || )

ตัวดำเนินการทางตรรกศาสตร์ถูกใช้เพื่อประเมิน expression โดยผลลัพธ์สุดท้ายนั้นจะเป็นจริงหรือเท็จ

ข้างล่างนี้เป็นรายการตัวดำเนินการทางตรรกศาสตร์ในภาษา C

NameSymbolExample
not!!a
and&&a && b
or||a || b

มาดูตัวอย่างการใช้งานของตัวดำเนินการตรรกศาสตร์

#include <stdio.h>

int main() {
int a = 10;
bool b = 1;
bool c = 0;

// using "not" operator
if(!(a == 10))
printf("a is not equal to 10.\n");
else
printf("a is equal to 10.\n");

// using "and" operator
if(b && c)
printf("True.\n");
else
printf("False.\n");

// using "or" operator
if(b || c)
printf("True.\n");
else
printf("False.\n");

return 0;
}

ในตัวอย่างเรามีตัวแปรสามตัว ตัวแปร a เป็น integer ในขณะที่ตัวแปร b และ c เป็น boolean ในภาษา C ค่าของ boolean ที่เป็นจริงนั้นจะมีค่าเป็น 1 และเท็จจะเป็น 0

และนี่คือผลลัพธ์ของโปรแกรม

a is equal to 10.
False.
True.

Bitwise operators ( &, |, ^, ~, <<, >> )

Bitwise operators นั้นถูกใช้ในการดำเนินการระดับบิตของตัวแปรหรือข้อมูล มันมีประโยชน์มากในการเขียนโปรแกรมระดับต่ำ แต่ในบทเรียนนี้เราจะไม่ได้พูดถึงเพราะเราจะเรียนรู้ภาษา C ในพื้นฐาน

SymbolDescription
&Bitwise AND
|Bitwise inclusive OR
^Bitwise exclusive OR
~bit inversion
<<Shift bits left
>>Shift bits right

ในบทนี้ เราได้ครอบคลุมการดำเนินการพื้นฐานในภาษา C


บทความเกี่ยวกับ ตัวดำเนินการ

ตัวดำเนินการ ในภาษา C#

ตัวดำเนินการ คือเครื่องหมายที่ใช้เพื่อให้ทำงานกับตัวแปรและค่าคงที่เพื่อสร้าง expression ในการเขียนโปรแกรม ในภาษา C#มีตัวดำเนินการประเภทต่างๆ ที่คุณจะต้องรู้จักก...

ตัวดำเนินการ ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา Java และการใช้งานตัวดำเนินการ ในภาษา Java มีตัวดำเนินการประเภทต่างๆ ดังนี้ String concatenating operator หรื...

ตัวดำเนินการ ในภาษา Visual Basic

ตัวดำเนินการ ใช้สำหรับจัดการกับตัวแปรและค่าคงที่ ยกตัวอย่างเช่น การกำหนดค่า การเปรียบเทียบข้อมูล ตัวดำเนินการในภาษา Visual Basic นั้นมีหลายรูปแบบ นี่เป็นตัวดำเน...

ตัวดำเนินการ ในภาษา C++

ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและค่าคงที่ ในภาษา C++ มีตัวดำเนินการประเภทต่างๆ นี่เป็นตัวดำเนินการที่สำคัญที่คุณจะต้องรู้จัก ตัวดำเนินการกำหนดค่านั้น...

ตัวดำเนินการ ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา PHP เราจะให้คุณรู้จักตัวดำเนินการแต่ละประเภทและวิธีการใช้งานกับการเขียนโปรแกรมในรูปแบบต่างๆตัวดำเนินการ คือเ...