9. ตัวดำเนินการเอกภาค
9. ตัวดำเนินการเอกภาค
ตัวดำเนินการเอกภาค คือ การใช้ตัวดำเนินการ กับตัวแปรเดียว ในที่นี้จะแสดงการใช้ตัวดำเนินการ 2 ตัวกับตัวแปรเดียว ซึ่งมีลักษณะการใช้ 2 แบบ คือ
1. ตัวดำเนินการเอกภาคเติมหลัง (postfix mode) หมายถึง ตัวดำเนินการเอกภาคอยู่หลังตัวแปร เช่น a++ หมายถึง ให้เพิ่มค่าให้ตัวแปร a ขึ้นอีก 1
2. ตัวดำเนินการเอกภาคเติมหน้า (prefix mode) หมายถึง ตัวดำเนินการเอกภาคอยู่หน้าตัวแปร เช่น ++a หมายถึง ให้เพิ่มค่าให้ตัวแปร a ขึ้นอีก 1
การใช้ตัวดำเนินการเอกภาคทั้ง 2 แบบ มีการใช้งานดังนี้
ตัวอย่าง กำหนดให้ i = 10 และ j = 2 พิจารณาตัวดำเนินการต่อไปนี้
ตัวอย่าง 2.8 การแสดงผลลัพธ์การคำนวณนิพจน์แบบกรณี Prefix (++j, --j) เปรียบเทียบกับ Postfix (j++, j--)
#include <stdio.h>
int main ()
{
int i, j, N;
i=10; j=2; N=i*++j;
printf("N=i*++j = %d, i=%d, j=%d\n", N, i, j);
i=10; j=2; N=i*j++;
printf("N=i*j++ = %d, i=%d, j=%d\n", N, i, j);
i=10; j=2; N=i*--j;
printf("N=i*--j = %d, i=%d, j=%d\n", N, i, j);
i=10; j=2; N=i*j--;
printf("N=i*j-- = %d, i=%d, j=%d\n", N, i, j);
}
ตัวอย่าง 2.9 การแสดงผลลัพธ์การใช้ตัวดำเนินการเพิ่มและลดค่า
#include <stdio.h>
int main ()
{
int a = 1;
int b = 10;
a++; // เพิ่มค่า a ขึ้นอีก 1
b--; // ลดค่า b ลงอีก 1
printf("a = %d, b = %d",a,b);
}
ตัวอย่าง 2.10 การแสดงผลลัพธ์การตัวดำเนินการเอกภาค
#include <stdio.h>
int main ()
{
int a,b,x;
a = 20; // กำหนดให้เก็บค่า 20 ไว้ใน a
x = a; // กำหนดให้เก็บค่าที่เก็บใน a ไว้ใน x
printf("x is %d\n",x); // แสดงค่าที่เก็บใน x
x++; // เพิ่มค่า x ขึ้นอีก 1
printf("x is %d\n",x); // แสดงค่า x
b = 30; // กำหนดให้เก็บค่า 30 ไว้ใน b
x = a + b; /* กำหนดให้นำค่าที่อยู่ใน a บวกเข้ากับค่าที่เก็บใน b แล้วนำไปเก็บไว้ใน x */
printf("x is %d\n",x); // แสดงค่าที่เก็บใน x
}
จัดทำโดย นางสาวทิพย์สุคนธ์ พันธ์กิ่ง กลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี
โรงเรียนบุญวัฒนา สำนักงานเขตพื้นที่การศึกษามัธยมศึกษานครราชสีมา