Chapter 2 ตัวดำเนินการ และนิพจน์
ตัวดำเนินการ Operand การคำนวณ ตัวดำเนินการ บวก + ลบ - คูณ * หาร / มอดูลัส %
ตัวถูกดำเนินการ operand ตัวคงที่ ตัวแปร แถวลำดับ ฟังก์ชัน
กำหนดให้ a และ b เป็นตัวแปร integer โดยที่ a = 32, b = 10 นิพจน์ ผล หมายเหตุ a + b 42 a - b 22 a * b 320 a / b 3 ปัดเศษทิ้ง a % b 2 32 a 10 b
กำหนดให้ a และ b เป็นตัวแปร floating point โดยที่ a = 4.2, b = 2.0 นิพจน์ ผล a + b 6.2 a - b 2.2 a * b 8.4 a / b 2.1 4.2 a 2.0 b
กำหนดให้ a และ b เป็นตัวแปร Character โดยที่ a = ‘M’, b = ‘P’ นิพจน์ ผล a 77 a + b 157 a + b + 3 160 a + b + ‘3’ 208 77 a 80 b
กำหนดให้ a และ b เป็นตัวแปร integer โดยที่ a = 32, b = -10 นิพจน์ ผล หมายเหตุ a + b 22 a - b 42 a * b -320 a / b -3 ปัดเศษทิ้ง a % b 2 32 a -10 b
กำหนดให้ a และ b เป็นตัวแปร integer โดยที่ a = -32, b = -10 นิพจน์ ผล หมายเหตุ a + b -42 a - b -22 a * b 320 a / b 3 ปัดเศษทิ้ง a % b -2 32 a -10 b
Data type Bytes int 2 - 4 short long 4 - 8 unsigned char 1 signed char unsigned char float 4 double 8 long double >= 8
Turbo C
Dev-C++
Floating point operands 1st operand 2nd operand float double long double 1nd operand Result double long double
Floating point operand & char or int operand 1st operand 2nd operand float double long double char short int Int long int 2nd operand Result float double long double
Floating point operand & char or int operand 1st operand 2nd operand int short char long int Int 2nd operand Result int long int
นิพจน์ ประมวล ผล ประเภท กำหนดให้ i เป็น integer, f เป็น float , i = 10, f = 2.4 c = ‘d’ นิพจน์ ประมวล ผล ประเภท i + f 10.0+2.4 12.4 float i + c 10+100 110 integer i + c + ‘0’ 10+100+48 158 (i + c) – (2 * f / 5) 110.0-0.96 100.04
Implicit type casting บอกให้คอมไพเลอร์เปลี่ยนประเภทข้อมูลให้โดยอัตโนมัติ โดยไม่ต้องใส่เครื่องหมายใดๆ
Explicit type casting เป็นการบอกให้คอมไพเลอร์เปลี่ยนประเภทข้อมูล ถ้าสามารถทำได้คอมไพเลอร์จะยอมทำให้
ตัวดำเนินการยูนารี Unary operators unary minus -7, -0.8, -0X6ABC increment operator ++m, m++ decrement operator --m, m— m++ เพิ่มค่า m ขึ้น 1 หลังใช้งานแล้ว ++m เพิ่มค่า m ขึ้น 1 ก่อนใช้งาน m-- ลดค่า m ลง 1 หลังใช้งานแล้ว --m ลดค่า m ลง 1 ก่อนใช้งาน
unary operator : sizeof
ตัวดำเนินการสัมพันธ์ Relational operator เครื่องหมาย ความหมาย ตัวอย่าง == เท่ากับ x == y > มากกว่า x > y < น้อยกว่า x < y >= มากกว่า หรือ เท่ากับ x >= y <= น้อยกว่า หรือ เท่ากับ x <= y != ไม่เท่ากับ x != y
ตัวดำเนินการสัมพันธ์ Relational operator x = 10, y = 20, z = 30 นิพจน์ ผล การตีความหมาย x > y false x <= y 1 true x == y (x + y) >= z x != y
ตัวดำเนินการตรรกะ logical operator เครื่องหมาย ความหมาย ตัวอย่าง && และ x && y || หรือ x || y
ตัวดำเนินการสัมพันธ์และตรรกะ Relational and logical operators x = 10, y = 20, z = 30 นิพจน์ ผล การตีความหมาย (x < y) && (y < z ) false (x <= y) || (x==y) 1 true
ลำดับของตัวดำเนินการ Category Operator Associativity unary - ++ -- | sizeof (type) R => L arithmetic * / % L => R + - relation < <= > >= == != logical && || assignment = += -= *= /= %=
ตัวดำเนินการสัมพันธ์และตรรกะ Relational and logical operators x = 10, y = 20, z = 30 นิพจน์ ผล การตีความหมาย x + y <= 10 false x <= y || x==y 1 true
ตัวดำเนินการกำหนดค่า Assignment operator ตัวแปร = นิพจน์ k = 7 m = n tax = price * vat / 100
ตัวดำเนินการกำหนดค่า Assignment operator k : integer k = 5.7 k k = -5.7 k = 2 + ‘G’ k = 2 + ‘G’ *2 5 -5 73 144
Multiple assignments ตัวแปร 1 = ตัวแปร 2 = … = นิพจน์ ตัวแปร 1 = ตัวแปร 2 = … = นิพจน์ ตัวแปร 1 = ตัวแปร 2 = นิพจน์ ตัวแปร 1 = (ตัวแปร 2 = นิพจน์) h, k : integer h = k = 5.7 h k h = k = -5.7 5 -5 -5 -5
Multiple assignments
ตัวดำเนินการกำหนดค่าอื่นๆ Additional assignment operators นิพจน์กำหนดค่า ตัวอย่าง ความหมาย += ตัวแปร += นิพจน์ k += 5 k = k + 5 -= ตัวแปร -= นิพจน์ k -= 5 k = k - 5 *= ตัวแปร *= นิพจน์ k *= 5 k = k * 5 /= ตัวแปร /= นิพจน์ k /= 5 k = k / 5 %= ตัวแปร %= นิพจน์ k %= 5 k = k % 5
ตัวดำเนินการเงื่อนไข Conditional operator นิพจน์ 1 ? นิพจน์ 2 : นิพจน์ 3 ประมวลผลนิพจน์ 1 ถ้า ผลของนิพจน์ 1 เป็นจริง ประมวลผลนิพจน์ 2 มิฉะนั้น ประมวลผลนิพจน์ 3 (k > 10) ? k * 2 : k
นิพจน์เงื่อนไข conditional expression
Library function function purpose ceil(d round up to the next integer floor(d) round down to the next integer getchar() enter character from standard input pow(d1,d2) return d1 raised to d2 printf(…) int rand() return a random positive integer sqrt(d) return a square root of d tlower(c) convert letter to lowercase tupper(c) convert letter to uppercase toascii(c) convert value to ASCII