ประวัติภาษา C
ภาษา C เป็นภาษาที่ถูกพัฒนาเพื่อใช้เขียนระบบปฏิบัติการ (Operating System) UNIX โดย Dennis Ritchie จาก AT&T Bell Laboratories ในปี พ.ศ.2515ภาษา C เป็นภาษาที่นิยมใช้ในการเขียนส่วนชุดคำสั่งระบบ (Systems Software) เพราะสามารถใช้งานได้เหมือนภาษาระดับต่ำ เช่น เข้าถึงเลขที่อยู่ (address) ต่าง ๆ ได้ โดยที่ผู้เขียนโปรแกรมไม่จำเป็นต้องรู้ส่วนอุปกรณ์ของเครื่อง (hardware)
ภาษาคอมพิวเตอร์ที่มีอิทธิพลต่อรูปแบบภาษา C
- Algol 60 (Algorithm Language) พัฒนาโดยกลุ่มคนจาก ACM และ GAMM ในปี พ.ศ.2503
- CPL (Combined Programming Language) พัฒนาที่มหาวิทยาลัย Cambridge และมหาวิทยาลัยลอนดอน ในปี พ.ศ.2506
- BCPL (Basic Combined Programming Language) พัฒนาโดย Martin Richards ในปี พ.ศ.2510
- B พัฒนาโดย Ken Thomson จาก Bell Laboratories ในปี พ.ศ.2513
- C พัฒนาโดย Dennis Ritchie จาก Bell Laboratories ในปี พ.ศ.2515
โปรแกรมภาษา C ประกอบด้วย
ชุดคำสั่งแต่ละคำสั่งประกอบด้วยองค์ประกอบของคำสั่ง
คำสั่งอาจประกอบด้วย ชื่อตัวแปร และชื่อฟังก์ชัน (names)- ชื่อประกอบด้วย ตัวอักษร ตัวเลข และ _
- ชื่อขึ้นต้นด้วยอักษร และจะมีความยาวเท่าไรก็ได้
ตัวอย่างชื่อที่ถูกต้อง i , f4, total, user_id
ตัวอย่างชื่อที่ไม่ถูกต้อง %_of_change, 57, 31flavors
ค่าคงที่ (constants) แบ่งเป็น 2 ชนิด คือ ค่าคงที่ชนิดตัวเลข และค่าคงที่ชนิดอักขระ
ค่าคงที่ชนิดตัวเลข
เลขจำนวนเต็ม (integer) ฐานต่าง ๆ ได้แก่- เลขฐานสิบ (decimal) เช่น 63, 999, - 40, - 2
- เลขฐานแปด (octal) ขึ้นต้นด้วย 0 เช่น 077, 040
- เลขฐานสิบหก (hexadecimal) ขึ้นต้นด้วย 0X เช่น 0X37, 0XFFFF, 0X9A37
- เลขทศนิยมธรรมดา เช่น 1.5, .001, -12.34
- เลขทศนิยมแบบเลขชี้กำลัง เช่น 1E-5(1* 10-5 ) , 1.23E+2(1.23*102) โดยใช้ E หรือ e แทนด้วยคูณสิบยกกำลัง
ค่าคงที่ชนิดอักขระ
แบบอักขระ (character constant) เช่น 'a' , 'A'แบบสายอักขระ (string constant) เช่น "help" , "happy day"
ช่องว่าง (whitespace) ในการเขียนโปรแกรมภาษา C จะเว้นช่องว่างระหว่างคำสั่งเท่าไรก็ได้ คำสั่งจะอยู่ส่วนไหนของบรรทัดก็ได้
หมายเหตุ (comment)
จะต้องเริ่มด้วย /* จบหมายเหตุด้วย */หมายเหตุไม่ได้เป็นส่วนของคำสั่ง แต่เป็นข้อความที่อาจเขียนเพื่ออธิบายโปรแกรม อธิบายชื่อตัวแปรต่าง ๆ โดยจะใส่หมายเหตุไว้ที่ส่วนไหนของโปรแกรมก็ได้ อาจจะมีหรือไม่มีในโปรแกรมก็ได้ เพราะเป็นการอธิบายเพิ่มเติมเท่านั้น
ตัวดำเนินการ (Operator) ได้แก่
ตัวดำเนินการการคำนวณ (arithmetic operators)
ตัวดำเนินการ
|
ความหมาย
|
–
|
ลบชนิดเอกภาพ (unary
minus)
|
+
|
บวก
|
–
|
ลบ
|
*
|
คูณ
|
/
|
หาร
|
%
|
มอดูโล (modulo operator) หรือเศษเหลือ (remainder)
|
ตัวดำเนินการสัมพันธ์ (relational operators)
ตัวดำเนินการ
|
ความหมาย
|
<
|
น้อยกว่า
|
<=
|
น้อยกว่าหรือเท่ากับ
|
>
|
มากกว่า
|
>=
|
มากกว่าหรือเท่ากับ
|
==
|
เท่ากับ
|
!=
|
ไม่เท่ากับ
|
ตัวดำเนินการตรรกะ (logical operators)
ตัวดำเนินการ
|
ความหมาย
|
&&
|
และ (and)
|
||
|
หรือ (or)
|
!
|
ไม่ (not)
|
ตัวดำเนินการอื่น ๆ
ตัวดำเนินการ
|
ความหมาย
|
[]
|
ดรรชนีกำกับของตัวแปรแถวลำดับ (array subscript)
|
->
|
ตัวชี้ของตัวแปรโครงสร้าง (structure
pointer)
|
.
|
สมาชิกของตัวแปรโครงสร้าง (structure
member)
|
++
|
เพิ่มค่าอีกหนึ่ง (increment)
|
--
|
ลดค่าลงอีก (decrement)
|
(type)
|
เปลี่ยนชนิดของข้อมูล
|
*
|
ตัวดำเนินการโดยอ้อม (indirect)
|
&
|
เลขที่อยู่ (address)
|
sizeof
|
ขนาดของตัวถูกดำเนินการ
|
?:
|
นิพจน์มีเงื่อนไข (conditional
expression)
|
=
|
กำหนดค่า
|
,
|
จุลภาค
|