ในคำแนะนำโดยละเอียดนี้ เราจะหารือเกี่ยวกับตัวดำเนินการในการเขียนโปรแกรม C และประเภทของตัวดำเนินการ
ตัวดำเนินการและประเภทของพวกเขาในการเขียนโปรแกรม C
ตัวดำเนินการเป็นสัญลักษณ์ที่ใช้ในการดำเนินการทางคณิตศาสตร์ที่เฉพาะเจาะจง ใช้เพื่อจัดการกับข้อมูลและตัวแปร ต่อไปนี้เป็นตัวดำเนินการประเภทต่างๆ ในการเขียนโปรแกรม C:
- ตัวดำเนินการทางคณิตศาสตร์
- ตัวดำเนินการยูนารี
- ผู้ปฏิบัติงานมอบหมาย
- ตัวดำเนินการเชิงตรรกะหรือบูลีน
- ตัวดำเนินการเชิงสัมพันธ์
- ตัวดำเนินการตามเงื่อนไข
- ตัวดำเนินการระดับบิต
1: ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการเหล่านี้คือตัวดำเนินการที่ใช้ในการดำเนินการฟังก์ชันทางคณิตศาสตร์พื้นฐาน เช่น การบวก การลบ หรือการคูณ คุณสามารถใช้โอเปอเรเตอร์เหล่านี้กับชนิดข้อมูลในตัวของการเขียนโปรแกรม C ได้เกือบทั้งหมด ต่อไปนี้คือตัวดำเนินการทางคณิตศาสตร์ที่ใช้ในการเขียนโปรแกรมภาษาซี:
ผู้ประกอบการ | ฟังก์ชั่น |
+ | เพิ่มตัวดำเนินการ 2 ตัว |
– | ลบ 2 ตัวถูกดำเนินการ |
* | คูณ 2 ตัวถูกดำเนินการ |
/ | หาร 2 ตัวดำเนินการ |
% | ตัวดำเนินการโมดูลัสให้ส่วนที่เหลือของการหาร |
ตัวอย่าง
ในตัวอย่างด้านล่าง เราได้ดำเนินการทางคณิตศาสตร์ดังกล่าวข้างต้นกับตัวแปร X และตัวแปร Y ตัวแปร X เก็บค่า 20 และ Y เก็บค่า 5:
#รวม
นานาชาติ หลัก ( )
{
นานาชาติ เอ็กซ์ = ยี่สิบ ;
นานาชาติ และ = 5 ;
นานาชาติ ผลลัพธ์ ;
ผลลัพธ์ = เอ็กซ์ + และ ;
พิมพ์ฉ ( 'การบวก X และ Y คือ: %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = เอ็กซ์ - และ ;
พิมพ์ฉ ( 'การลบ X และ Y คือ: %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = เอ็กซ์ * และ ;
พิมพ์ฉ ( 'การคูณ X และ Y คือ: %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = เอ็กซ์ / และ ;
พิมพ์ฉ ( 'การหาร X และ Y คือ: %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = เอ็กซ์ % และ ;
พิมพ์ฉ ( 'การหารโมดูลัสของ X และ Y คือ: %d \n ' , ผลลัพธ์ ) ;
กลับ 0 ;
}
2: ตัวดำเนินการยูนารี
มีตัวดำเนินการยูนารีเฉพาะสองตัวที่สนับสนุนโดยภาษา C เท่านั้น ตัวดำเนินการเพิ่ม ++ และตัวลด — ตัวดำเนินการเพิ่มจะเพิ่ม 1 ให้กับตัวถูกดำเนินการ และตัวดำเนินการลดจะลบ 1 ออกจากตัวถูกดำเนินการ
ตัวดำเนินการที่เพิ่มขึ้นเขียนเป็น:
++ เอ หรือ เอ ++
ตัวดำเนินการลดลงคือ:
-- เอ หรือ เอ --หากเราใช้ตัวดำเนินการเพิ่มและลดเป็นคำนำหน้า จะเพิ่มหรือลบค่าตัวแปรก่อน จากนั้นจึงกำหนดผลลัพธ์ให้กับตัวแปรทางด้านซ้าย หากมีการเพิ่มตัวดำเนินการก่อน ตัวดำเนินการจะคืนค่าเดิมก่อน จากนั้นจึงเพิ่มหรือลบตัวถูกดำเนินการด้วย 1
ตัวอย่าง
ด้านล่างนี้เราได้กำหนดค่าให้กับตัวแปรสองตัว a และ b และใช้ตัวดำเนินการเพิ่มและลดกับตัวแปรเหล่านี้:
#รวมนานาชาติ หลัก ( )
{
นานาชาติ ก = สิบห้า , ข = 10 ;
พิมพ์ฉ ( '++a = %d \n ' , ++ ก ) ;
พิมพ์ฉ ( 'a++ = %d \n ' , ก ++ ) ;
กลับ 0 ;
}
3: ผู้ดำเนินการมอบหมายงาน
หนึ่ง ตัวดำเนินการมอบหมาย (=) ใช้สำหรับกำหนดค่าให้กับตัวแปรในโปรแกรม ด้านล่างนี้เป็นตัวดำเนินการมอบหมายที่กล่าวถึง:
ผู้ประกอบการ | การทำงาน |
= | กำหนดค่าให้กับตัวถูกดำเนินการ |
+= | เพิ่มค่าของตัวถูกดำเนินการที่อยู่ด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย |
-= | ลบค่าของตัวถูกดำเนินการที่ถูกต้องออกจากตัวถูกดำเนินการด้านซ้าย |
*= | คูณค่าของตัวถูกดำเนินการด้านขวากับตัวถูกดำเนินการด้านซ้าย |
/= | แบ่งค่าของตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย |
%= | ใช้โมดูลัสของค่าสองค่าและกำหนดค่าให้กับตัวถูกดำเนินการด้านซ้าย |
ตัวอย่าง
เราได้แสดงการทำงานของตัวดำเนินการกำหนดบนตัวถูกดำเนินการ X และ Y สองตัวในตัวอย่างด้านล่าง:
#รวมนานาชาติ หลัก ( )
{
นานาชาติ เอ็กซ์ = 10 ;
นานาชาติ ผลลัพธ์ ;
ผลลัพธ์ = เอ็กซ์ ;
พิมพ์ฉ ( 'มูลค่าของผลลัพธ์ = %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ += เอ็กซ์ ;
พิมพ์ฉ ( 'มูลค่าของผลลัพธ์ = %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ -= เอ็กซ์ ;
พิมพ์ฉ ( 'มูลค่าของผลลัพธ์ = %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ *= เอ็กซ์ ;
พิมพ์ฉ ( 'มูลค่าของผลลัพธ์ = %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ /= เอ็กซ์ ;
พิมพ์ฉ ( 'มูลค่าของผลลัพธ์ = %d \n ' , ผลลัพธ์ ) ;
กลับ 0 ;
}
4: ตัวดำเนินการเชิงสัมพันธ์
ตัวดำเนินการเชิงสัมพันธ์ใช้ในการเขียนโปรแกรมภาษาซีเพื่อตรวจสอบความสัมพันธ์ระหว่างตัวแปรสองตัว สามารถใช้เปรียบเทียบราคาสิ่งของหรืออายุของคนสองคนได้ ต่อไปนี้คือตัวดำเนินการเชิงสัมพันธ์ที่ใช้ในการเขียนโปรแกรมภาษาซี:
ผู้ประกอบการ | ฟังก์ชั่น |
== | เท่ากับ |
> | มากกว่า |
< | น้อยกว่า |
>= | มากกว่าเท่ากับ |
<= | น้อยกว่าเท่ากับ |
!= | ไม่เท่ากับ |
ตัวอย่าง
ตัวอย่างด้านล่างแสดงการทำงานของตัวดำเนินการเชิงสัมพันธ์ในการเขียนโปรแกรมภาษาซี:
#รวมนานาชาติ หลัก ( )
{
นานาชาติ ก = 9 ;
นานาชาติ ข = 10 ;
พิมพ์ฉ ( '%d == %d คือ %d \n ' , ก , ข , ก == ข ) ;
พิมพ์ฉ ( '%d > %d คือ %d \n ' , ก , ข , ก > ข ) ;
พิมพ์ฉ ( '%d < %d คือ %d \n ' , ก , ข , ก < ข ) ;
พิมพ์ฉ ( '%d != %d คือ %d \n ' , ก , ข , ก != ข ) ;
พิมพ์ฉ ( '%d >= %d คือ %d \n ' , ก , ข , ก >= ข ) ;
พิมพ์ฉ ( '%d <= %d คือ %d \n ' , ก , ข , ก <= ข ) ;
กลับ 0 ;
}
5: ตัวดำเนินการเชิงตรรกะ
มีตัวดำเนินการทางตรรกะสี่ตัวที่ภาษา C รองรับ:
ผู้ประกอบการ | การทำงาน |
ตรรกะและ (&&) | เป็นจริงก็ต่อเมื่อเงื่อนไขทั้งหมดตรงตามเงื่อนไข |
ตรรกะหรือ (||) | หากเงื่อนไขเพียงข้อเดียวตรงตามเงื่อนไข ผลลัพธ์จะเป็นจริง |
ตรรกะไม่ (!) | ถ้าตัวดำเนินการเป็น 0 ผลลัพธ์จะเป็นจริง |
บิตไม่ใช่ (~) | แปลงบิตทั้งหมดของตัวถูกดำเนินการ |
ตัวอย่าง
โค้ดตัวอย่างด้านล่างอธิบายการทำงานของตัวดำเนินการเชิงตรรกะใน C:
#รวมนานาชาติ หลัก ( )
{
นานาชาติ เอ็กซ์ = 10 , และ = 4 , กับ = 10 , ผลลัพธ์ ;
ผลลัพธ์ = ( เอ็กซ์ == และ ) && ( กับ > และ ) ;
พิมพ์ฉ ( '(X == Y) && (Z > Y) คือ %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = ( เอ็กซ์ == และ ) && ( กับ < และ ) ;
พิมพ์ฉ ( '(X == Y) && (Z < Y) คือ %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = ( เอ็กซ์ == และ ) || ( กับ < และ ) ;
พิมพ์ฉ ( '(X == Y) || (Z < Y) คือ %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = ( เอ็กซ์ != และ ) || ( กับ < และ ) ;
พิมพ์ฉ ( '(X != Y) || (Z < Y) คือ %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = ! ( เอ็กซ์ != และ ) ;
พิมพ์ฉ ( '!(X != Y) คือ %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = ! ( เอ็กซ์ == และ ) ;
พิมพ์ฉ ( '!(X == Y) คือ %d \n ' , ผลลัพธ์ ) ;
ผลลัพธ์ = ! ( เอ็กซ์ > และ ) ;
พิมพ์ฉ ( '!(X > Y) คือ %d \n ' , ผลลัพธ์ ) ;
กลับ 0 ;
}
6: ตัวดำเนินการตามเงื่อนไข
ตัวดำเนินการเงื่อนไขในภาษาซีเรียกอีกอย่างว่า ตัวดำเนินการที่ประกอบไปด้วย เนื่องจากต้องใช้ตัวถูกดำเนินการสามตัว ได้แก่ เงื่อนไข คำสั่ง 1 และคำสั่ง 2 โดยจะประเมินเงื่อนไขและส่งกลับคำสั่ง 1 หรือคำสั่ง 2 ขึ้นอยู่กับผลลัพธ์ของเงื่อนไขที่กำหนดซึ่งอาจเป็นจริงหรือเท็จก็ได้
เงื่อนไข ? คำแถลง 1 : คำแถลง 2- เงื่อนไข: นิพจน์บูลีนที่ตรวจสอบว่าเป็นจริงหรือเท็จ
- คำชี้แจง 1: นิพจน์ที่ได้รับการประเมินหากเงื่อนไขเป็นจริง
- คำชี้แจง 2: นิพจน์ที่ได้รับการประเมินหากเงื่อนไขเป็นเท็จ
ตัวอย่าง
ในตัวอย่างด้านล่าง ฉันได้กำหนดค่าให้กับตัวเลขแล้วใช้เงื่อนไข ถ้าเงื่อนไขเป็นจริง คำสั่ง 1 จะเป็นเอาต์พุต และถ้าเงื่อนไขเป็นเท็จ คำสั่ง 2 จะเป็นเอาต์พุต:
#รวมนานาชาติ หลัก ( )
{
นานาชาติ ตัวเลข = 10 ;
( ตัวเลข < ยี่สิบ ) ? ( พิมพ์ฉ ( “มันน้อยกว่าหมายเลข 20!” ) ) : ( พิมพ์ฉ ( “มันมากกว่าหมายเลข 20!” ) ) ;
กลับ 0 ;
}
7: ตัวดำเนินการระดับบิต
ตัวดำเนินการระดับบิต ใน C จัดการข้อมูลในระดับบิต หมายความว่าพวกมันทำงานในแต่ละบิตภายในประเภทข้อมูล เช่น จำนวนเต็ม ไม่สามารถใช้กับ double และ float และใช้สำหรับทดสอบบิตและเลื่อนไปทางขวาหรือซ้าย
ตัวดำเนินการระดับบิตในการเขียนโปรแกรมภาษาซีแสดงไว้ในตารางด้านล่าง:
ผู้ประกอบการ | การทำงาน |
& | ในระดับบิตและ |
| | ในระดับบิตหรือ |
^ | Bitwise พิเศษหรือ |
<< | เลื่อนไปทางซ้าย |
>> | เลื่อนไปทางขวา |
~ | หนึ่งเติมเต็ม |
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงโปรแกรม C ที่ใช้ตัวดำเนินการระดับบิต:
#รวมนานาชาติ หลัก ( ) {
นานาชาติ ก = 13 ; // เลขฐานสอง 1101
นานาชาติ ข = 7 ; // เลขฐานสอง 0111
นานาชาติ ผลลัพธ์ ;
// ระดับบิตและ
ผลลัพธ์ = ก & ข ; // 1101 & 0111 = 0101 (ทศนิยม 5)
พิมพ์ฉ ( 'a & b = %u \n ' , ผลลัพธ์ ) ;
// ระดับบิตหรือ
ผลลัพธ์ = ก | ข ; // 1101 | 0111 = 1111 (ทศนิยม 15)
พิมพ์ฉ ( 'a | b = %u \n ' , ผลลัพธ์ ) ;
// บิตไวซ์ XOR
ผลลัพธ์ = ก ^ ข ; // 1101 ^ 0111 = 1,010 (ทศนิยม 10)
พิมพ์ฉ ( 'a ^ b = % ยู \n ' , ผลลัพธ์ ) ;
// เลื่อนไปทางซ้ายตามบิต
ผลลัพธ์ = ก << 2 ; // 1101 << 2 = 110100 (ทศนิยม 52)
พิมพ์ฉ ( 'ก << 2 = %u \n ' , ผลลัพธ์ ) ;
// เลื่อนไปทางขวาตามบิต
ผลลัพธ์ = ก >> 2 ; // 1101 >> 2 = 0011 (ทศนิยม 3)
พิมพ์ฉ ( 'ก >> 2 = %u \n ' , ผลลัพธ์ ) ;
// Bitwise ไม่
ผลลัพธ์ = ~ก ; // ~1101 = 0010 (การแทนส่วนเสริมของทศนิยม 2 เป็น -14)
พิมพ์ฉ ( '~a = %d \n ' , ผลลัพธ์ ) ;
กลับ 0 ;
}
บันทึก: ตัวดำเนินการระดับบิตถูกใช้เพื่อทำงานในระดับบิต หมายความว่าพวกมันทำงานในแต่ละบิตภายในเลขฐานสอง ในทางกลับกัน ตัวดำเนินการบูลีนถูกใช้เพื่อดำเนินการกับค่าตรรกะ ซึ่งทำงานโดยใช้ค่าบูลีน (จริง/เท็จ หรือ 1/0) และมักใช้ในกระบวนการตัดสินใจหรือข้อความแสดงเงื่อนไข
บรรทัดล่าง
ตัวดำเนินการเป็นสัญลักษณ์ที่สั่งให้คอมไพเลอร์ทำงานบางอย่าง ภาษาซีมีตัวดำเนินการในตัวหลายตัว ได้แก่ เลขคณิต ยูนารี การมอบหมาย ตรรกะ เชิงสัมพันธ์ เงื่อนไข บูลีน และระดับบิต เราได้กล่าวถึงรายละเอียดเหล่านี้และแสดงให้เห็นด้วยผลลัพธ์ตัวอย่าง อ่านส่วนด้านบนของคำแนะนำเพื่อรับข้อมูลโดยละเอียดเกี่ยวกับตัวดำเนินการเหล่านี้