วันจันทร์ที่ 5 สิงหาคม พ.ศ. 2556

ความรู้เกี่ยวกับภาษา c

ประวัติภาษา 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
    เลขทศนิยม (floating-point) ได้แก่
  • เลขทศนิยมธรรมดา เช่น 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)
=
กำหนดค่า
,
จุลภาค