The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by hw45114, 2022-07-29 02:53:47

การเขียนภาษาซีเบื้องต้น

Keywords: C langguage,C language,C programming,C programming language,ภาษาซี,การใช้ภาษาซีเบื้องต้น,ภาษาซีเบื้องต้น,การเขียนภาษาซี,เขียนโปรแกรม

ผลงานนี้เป็นส่วนหนึ่งของรายวิชา ว30122
(วิทยาการคำนวณเเละการออกเเบบเทคโนโลยี)

เเละบูรณาการกับรายวิชา ว30282
(เทคนิคปฏิบัติการวิทยาศาสตร์ 2)

ภาคเรียนที่ 1 ปีการศึกษา 2565

คำนำ

ภาษาซี คือ ภาษาคอมพิ วเตอร์ใช้สำหรับพั ฒนาโปรแกรมทั่วไป ถูกพั ฒนาครั้งแรก
เพื่ อใช้เป็นภาษาสำหรับพั ฒนาระบบปฏิบัติการยูนิกซ์แทนภาษาแอสเซมบลีซึ่งเป็นภาษาระดับต่ำ
ที่สามารถกระทำในระบบฮาร์ดแวร์ได้ด้วยความรวดเร็ว แต่มีความยุ่งยากในการโปรแกรม
มีความเฉพาะตัว และแตกต่างกันไปในแต่ละเครื่อง เมื่อภาษาซีได้รับความนิยมมากขึ้น
จึงมีผู้ผลิต Compiler ออกมาแข่งขันกันมากมาย ทำให้เริ่มมีการใส่ลูกเล่นต่าง ๆ เพื่ อดึงดูดใจ-
ผู้ซื้อ ทาง American National Standard Institute (ANSI) จึงตั้งข้อกำหนดมาตรฐานของ-
ภาษาซีขึ้น เรียกว่า ANSI C เพื่ อคงมาตรฐานของภาษาไว้ไม่ให้เปลี่ยนแปลงไป

ปัจจุบันมีสื่อเพื่ อการศึกษาหลากหลายรูปแบบบนอินเทอร์เน็ต ซึ่งหนึ่งในสื่อที่มีความน่า-
สนใจทำให้ข้อมูลที่เผยแพร่ออกไปสามารถเข้าใจและเข้าถึงได้ง่ายมากขึ้น นั่นคือ E-Book
ซึ่งย่อมาจากคำว่า Electronics-Book หมายถึง หนังสือที่สร้างขึ้นด้วยโปรแกรมคอมพิ วเตอร์
มีลักษณะเป็นเอกสารอิเล็กทรอนิกส์ โดยปกติมักจะเป็นแฟ้มข้อมูลที่สามารถอ่านเอกสารผ่านทางหน้า
จอคอมพิ วเตอร์ หนังสืออิเล็กทรอนิกส์สามารถเชื่อมโยงจุดไปยังส่วนต่าง ๆ ของหนังสือ เว็บไซต์
ต่าง ๆ ตลอดจนมีปฏิสัมพั นธ์และโต้ตอบกับผู้ศึกษาได้ นอกจากนั้น E-Book สามารถ
แทรกภาพ เสียง ภาพเคลื่อนไหว แบบทดสอบ และที่สำคัญก็คือ หนังสืออิเล็กทรอนิกส์สามารถ
ปรับปรุงให้ทันสมัยได้ตลอดเวลาคุณสมบัติเหล่านี้จะไม่มีในหนังสือธรรมดาทั่วไป

จากที่กล่าวมาข้างต้นทางคณะผู้จัดทำจึงได้มีการจัดทำหนังสืออิเล็กทรอนิกส์ เรื่อง-
การเขียนภาษาซีเบื้องต้น ซึ่งหนังสืออิเล็กทรอนิกส์จะเข้ามาช่วยเป็นสื่อกลางในการถ่ายทอดข้อมูล
ทางคณะผู้จัดทำได้มีการศึกษาและรวบรวมข้อมูลเกี่ยวกับการเขียนภาษาซีในการเขียนโปรแกรม-
คอมพิ วเตอร์เบื้องต้น เพื่ อนำมาเสนอและเผยแพร่ข้อมูลเกี่ยวกับการเขียนภาษาซีเบื้องต้น

สารบัญ หน้า

ความหมายภาษาซี 1
ประวัติความเป็นมาของภาษาซี 2
ภาษาของคอมพิ วเตอร์ 3
ยุคของภาษาคอมพิ วเตอร์ 4
วิวัฒนาการของภาษาซี 8
ลักษณะเด่นของภาษาซี 11
โครงสร้างภาษาซี 12
อักขระในภาษาซี 15
กฏการเขียนภาษาซี 17
ตัวแปรภาษา 18
ตัวแปร 20
ตัวดำเนินการและนิพจน์ 23
การรับและแสดงผลข้อมูล 26
คำสั่งควบคุมเงื่อนไข 27

ความหมายภาษาซี

ภาษาซี (C Programming Language) คือ ภาษาคอมพิ วเตอร์ใช้สำหรับพั ฒนาโปรแกรมทั่วไป
ถูกพั ฒนาครั้งแรกเพื่ อใช้เป็นภาษาสำหรับพั ฒนาระบบปฏิบัติการยูนิกซ์ (Unix Opearating System)
แทนภาษาแอสเซมบลีซึ่งเป็นภาษาระดับต่ำที่สามารถกระทำในระบบฮาร์ดแวร์ได้ด้วยความรวดเร็ว
แต่มีข้อบกพร่องคือ ความยุ่งยากในการโปรแกรม เฉพาะตัว และความแตกต่างไปในแต่ละเครื่อง
ดังนั้น เดนนิส ริตชี (Dennis Ritchie) จึงได้คิดค้นพั ฒนาภาษาใหม่นี้ขึ้นมาเมื่อประมาณต้นปี 1970
โดยการรวบรวมเอาจุดเด่นของแต่ละภาษาระดับสูงผนวกเข้ากับภาษาระดับต่ำ เรียกชื่อว่า ภาษาซี

เมื่อภาษาซีได้รับความนิยมมากขึ้น จึงมีผู้ผลิต compiler ภาษาซีออกมาแข่งขันกันมากมาย
ทำให้เริ่มมีการใส่ลูกเล่นต่าง ๆ เพื่ อดึงดูดใจผู้ซื้อ ทาง American National Standard Institute
(ANSI) จึงตั้งข้อ-กำหนดมาตรฐานของภาษาซีขึ้น เรียกว่า ANSI C เพื่ อคงมาตรฐานของภาษาไว้
ไม่ให้เปลี่ยนแปลงไป






ภาษาแอสแซมบลี คือ การเรียนรู้เพื่ อใช้งานไมโครคอนโทรลเลอร์ สิ่งที่สำคัญในลำดับต่อมาคือ

การเขียนโปรแกรม เพื่ อกำหนดให้ไมโครคอนโทรลเลอร์ทำงาน ข้อมูลของโปรแกรมที่ไมโครคอนโทรลเลอร์
ต้องการจะอยู่ในรูปของ ภาษาเครื่อง หรือ แมชีนโค้ด (Machine Code) แต่เนื่องจากการเขียนโปรแกรม
ในลักษณะที่เป็นภาษาเครื่องนี้ ผู้เขียนโปรแกรมต้องทำการเปิดตารางรหัสคำสั่งซึ่งเป็นเรื่องที่ยุ่งยาก
และทำให้การตรวจสอบโปรแกรมที่เขียนขึ้นกระทำได้ยาก

1

ประวัติความเป็นมาของภาษาซี

C programming language

เป็นภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับการพั ฒนาขึ้นในช่วงทศวรรษ 1970
โดย เคน ธอมป์สัน (Ken Thompson) และ เดนนิส ริทชี่ (Dennis Ritchie) ขณะทำงานอยู่ที่-
เบลล์เทเลโฟน เลบอราทอรี่ สำหรับใช้ในระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกนำไปใช้กับ-
ระบบปฏิบัติการอื่น ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่ใช้กันแพร่หลายมากที่สุด
ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการทำงานเนื่องจากมีความสามารถใกล้เคียงกับภาษาระดับต่ำ
แต่เขียนแบบภาษาระดับสูง โปรแกรมคอมพิ วเตอร์ที่เขียนด้วยภาษาซีจึงทำงานได้รวดเร็ว
ภาษาซีเป็นภาษาโปรแกรมที่นิยมใช้กันมากสำหรับพั ฒนาระบบปฏิบัติการ, ซอฟต์แวร์ระบบ,


ควบคุมไมโครคอนโทรลเลอร์ และเป็นภาษาที่ใช้กันทั่วไปในหลักสูตรวิทยาการคอมพิ วเตอร์

C++ programming language

ภาษาซีพลัสพลัส (C++ programming language) เป็นภาษาโปรแกรมคอมพิ วเตอร์-
อเนกประสงค์ มีโครงสร้างภาษาที่มีการจัดชนิดข้อมูลแบบสแตติก (statically typed) และ
สนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่
การโปรแกรมเชิงกระบวนคำสั่ง, การนิยามข้อมูล, การโปรแกรมเชิงวัตถุ, และการโปรแกรม-
แบบเจเนริก (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์
ที่นิยมมากภาษาหนึ่งนับตั้งแต่ช่วงทศวรรษ 1990

Bjarne Stroustrup จากห้องวิจัยเบลล์ (Bell Labs) เป็นผู้พั ฒนาภาษา C++ ขึ้น 2
(เดิมใช้ชื่อ "C with classes") ในปีค.ศ. 1983 เพื่ อพั ฒนาภาษาซีดั้งเดิม สิ่งที่พั ฒนาขึ้นเพิ่ มเติมนั้น
เริ่มจากการเพิ่ มเติมการสร้างคลาสจากนั้นก็ เพิ่ มคุณสมบัติต่าง ๆ ตามมา ได้แก่ เวอร์ชวลฟังก์ชั่น
การโอเวอร์โหลดโอเปอเรเตอร์ การสืบทอดหลายสาย เท็มเพลต และการจัดการเอ็กเซ็พชัน
มาตรฐานของภาษาซีพลัสพลัสได้รับการรับรองในปี ค.ศ. 1998 เป็นมาตรฐาน ISO/IEC
14882:1998 เวอร์ชั่นล่าสุดคือเวอร์ชั่นในปี ค.ศ. 2003 ซึ่งเป็นมาตรฐาน ISO/IEC 14882:2003
ในปัจจุบันมาตรฐานของภาษาในเวอร์ชันใหม่ (รู้จักกันในชื่อ C++0x) กำลังอยู่ในขั้นพั ฒนา

ค อ ม พิ ว เ ต อ ร์
ใ ช้ ภ า ษ า ซี
ม า ตั้ ง แ ต่
แรก?

ก่อนจะมาเป็นภาษาซีที่ใช้กันอย่างแพร่หลาย
จริง ๆ แล้วมีภาษาอื่นอีกมากมายที่นิยม
ในการเขียนคอมพิ วเตอร์กันในปัจจุบัน

ก่อนที่จะไปทำความรู้จักวิวัฒนาการของภาษาซี
เรามาทำรู้จักวิวัฒนาการของภาษาคอมพิ วเตอร์

ก่อนดีกว่า

ภาษาของคอมพิ วเตอร์ เนื่องจากภาษานี้ไม่สะดวก
ในการสั่งงานให้คอมพิ วเตอร์
ภาษาเครื่อง (Machine Language) จึงได้พั ฒนาภาษาออกมา
แบ่งออกเป็น 2 ประเภท
คอมพิ วเตอร์รับคำสั่งการทำงานเป็นสัญญาณไฟฟ้า
มนุษย์ทำความเข้าใจยาก แต่คอมพิ วเตอร์เข้าใจได้
เลยเป็นรหัสตัวเลขแบบต่าง ๆ ในระบบเลขฐานสอง
คอมพิ วเตอร์จะนำไปปฏิบัติงานได้ทันที

ภาษาระดับต่ำ (Low-Level Language) ภาษาซีถือว่าเป็นทั้งภาษาระดับสูง
และภาษาระดับต่ำเพราะมีวิธีใช้ข้อมูล
ใกล้เคียงกับภาษาเครื่อง ใช้รหัสตัวอักษรแทนภาษาเครื่อง และโครงสร้างการควบคุมการทำงาน
แต่ก็ยังยุ่งยากในการศึกษาและพั ฒนาภาษาให้ผู้ใช้ ของโปรแกรมเป็นอย่างเดียวกับภาษาระดับสูงอื่นๆ
คอมพิ วเตอร์เข้าใจง่ายขึ้น จึงไม่สะดวกในการใช้งาน ยังมีวิธีการเข้าถึงในระดับต่ำที่สุดของฮาร์ดแวร์ด้วย
ตัวอย่างเช่น ภาษาแอสเซมบลี (ASSEMBLY LANGUAGE)

ภาษาระดับสูง (High-Level Language) 3

เป็นภาษาที่สามารถศึกษาและทำความเข้าใจได้ง่ายขึ้น
เหมาะสำหรับการใช้งานในลักษณะต่างกัน หลายภาษาตามวัตถุประสงค์ต่าง ๆ
ตัวอย่างเช่น C LANGUAGE, JAVA LANGUAGE, BASIC LANGUAGE,
FORTRAN LANGUAGE

ยุ ค ข อ ง ภ า ษ า ค อ ม พิ ว เ ต อ ร์

แ บ่ ง อ อ ก เ ป็ น 5 ยุ ค

1 First Generation Language

ยุคนี้มีภาษาคอมพิ วเตอร์เพี ยงภาษาเดียวเท่านั้นคือ "ภาษาเครื่อง (Machine Language)"
ซึ่งจัดเป็นภาษาระดับต่ำที่สุด เป็นภาษาที่สื่อสารกับคอมพิ วเตอร์ได้โดยตรง ใช้เลขฐานสอง
ซึ่งประกอบด้วยเลข 0 และ 1 ซึ่งจะสัมพั นธ์กับการเปิด (On) และการปิด (Off) ของสัญญาณไฟฟ้า-
ภายในเครื่องคอมพิ วเตอร์แทนข้อมูลและคำสั่งต่าง ๆ ทั้งหมด ทำให้ในยุคนี้การเขียนโปรแกรมยุ่งยาก
มาก

2 Second Generation Language

ถูกพั ฒนาต่อยอดมาจากยุคที่ 1 โดยในยุคนี้ได้นำเอาสัญลักษณ์มาใช้แทนตัวเลขในภาษาเครื่อง
เพื่ อให้สามารถเขียนคำสั่งได้ง่ายขึ้น ภาษาในยุคนี้ใ้ช้ "ภาษาแอสเซมบลี (Assembly)"
แต่เนื่องจากคอมพิ วเตอร์ไม่เข้าใจความหมายของชุดคำสั่งที่เขียนขึ้นด้วยภาษาแอสเซมบลี
จึงจำเป็นจะต้องมีตัวแปลภาษาในเป็นภาษาเครื่อง เรียกว่า แอสเซมเบลอร์ (Assembler)
เพื่ อให้คอมพิ วเตอร์เข้าใจชุดคำสั่ง ในยุคนี้จัดเป็นกลุ่มภาษาระดับต่ำ (Low-level language)

assambly Machine
language Language

assambler

4

3 Third Generation Language

ในยุคนี้มีรูปแบบการเขียนและชุดคำสั่งที่ง่ายมากกว่ายุคก่อน ทั้งต่อการเรียนรู้และการทำความเข้าใจ
เนื่องจากภาษามีความใกล้เคียงกับภาษาของมนุษย์ยิ่งขึ้น เป็นภาษาระดับสูง (High-level language)
โดยนำกลุ่มคำของภาษาอังกฤษและเครื่องหมายทางคณิตศาสตร์มาใช้เป็นรูปแบบการเขียน
ซึ่งเป็นรูปแบบเชิงกระบวนการ มีการเขียนคำสั่งอย่างเป็นขั้นเป็นตอนเรียงลำดับ
ผู้เขียนต้องจดจำรูปแบบคำสั่งต่างๆ จึงยังเป็นเรื่องยุ่งยากอยู่ในการเขียนโปรแกรมการเขียน
ด้วยภาษาระดับสูงแต่ละภาษาจะต้องมีโปรแกรมที่ทำหน้าที่แปลภาษาระดับสูงให้เป็นภาษาเครื่อง
มีตัวแปรภาษาอยู่ 2 ประเภท คือ คอมไพเลอร์ (Compiler) และ อินเตอร์พรีเตอร์ (Interpreter)
เลือกใช้ตามความเหมาะสมของโปรแกรม ภาษาในยุคนี้มีหลายอย่าง ตัวอย่างเช่น C language,
JAVA Language, Basic language, Pascal language, Fortran language เป็นต้น

ภ า ษ า ร ะ ดั บ สู ง ( H I G H - L E V E L L A N G U A G E )

เหเปม็นภาภะสาาษมเษชก่าาันวรบิฟะศงดด้ัวาอาบกนน
สรรทูวี์ิง่รตแท้มทียอ
่ทศเงากา่ศรกาสาแนาตสรก่รตค์ทีำ่รส์นุดวณ ส่วนมเคารกเื่หอมีมงโปาคะรอสภแำมกาหพษิรรัวมบาเแโตงคปาอนบลร์ดภขอ้าานลนษาธดาุโรใคหกิบญจอ่ ล

ภาษาเบสิกภามษใีชจาุ้คดตัอปวมแรพะปิสลวงภเตคา์เอษพืรา่์อชภในาิชษ้ดสาท
ีออ่ืเ่นนรี
เยเขปีก็ยนว่นภาโอาิปษนราเแทที่กมอีรขร์มพนแารีดทเตนเลอ็กร์

5

ภาษาวิชวลเบสิกและกแใาชต้ร่ไใมวีช้แพยเันนาฒื้กวอรคนทีิ่ณาดใ์นตแ่บหอลานจงะ่ววาสิก่ธยีวภกคนาาว
ขษร
าอพามัเงจฒบำภสกนิา็กษแาโาตปเกบรตสแ่ิกากงรกมันมาก ได้รแับลกภะมาีารโษคอราอ
งปกสแารสบ้าบคงใทาหี่้ลดใีช้ง่าย

ภาษาซีและซีพลัสพลัส

เป็นภาษาที่มีใช้กับเครื่องคอมพิ วเตอร์ทุกระดับ

เนื่องจากได้รวมเอาข้อมูลของภาษาทั้งระดับสูง

และภาษาระดับต่ำเข้าไว้ด้วยกัน ไวยากรณ์เข้าใจง่าย

ประสิทธิภาพและความเร็วดีกว่ามาก

เนื่องจากมีการทำงานเหมือนภาษาระดับต่ำ

และสามารถทำงานได้ในระดับที่เป็นการควบคุมฮาร์ดแวร์ได้มากกว่า

ภาษาระดับสูงอื่น ๆ เป็นภาษาที่สามารถพั ฒนาระบบปฏิบัติการได้

นอกจากนี้เมื่อมีแนวคิดของการเขียนโปรแกรม

แบบเชิงวัตถุได้เข้าในวงการคอมพิ วเตอร์มากขึ้น

ภาษาซีก็ยังได้รับการพั ฒนาเกิดเป็นภาษาใหม่ชื่อว่า ภาษาซีพลัสพลัส




กาแรบเขบียจินนโตปภราแพกรมกพัารฒเขนียาขนึส้นโาปโมดราแยรกบถรรใิมชษ้ังททำาไไนมดไ้โดงค่้าบรยซนกอร
วะฟ่
บาตกบ์าปอรฏอเิขบกีัยตแินกบโาบปรเรแพืแ่บอกบเรขจีมียยแูนโบอโบปเรกแ่ากมรามกที่-

ภาษาเดลฟายเแป็ตรน่ใวทชี้่มนภิทยัาแ้งษมนภาใวปนาคษกกาิดสาาาปรเครหนนาามำสำลืมไอคเปปานา็พในลกัชั้ภฒเบสปา็ภอนนษนาภาาษเเพ
าืปขา้
ีษ็นวยนิาชฐนโทีปวา่โเนปลรข้ทแเราี่บใกแใจชสกร้ิงใกม่รนามใกยช้าเงหราเมนขีามยะแานกก่ ภาษาจาวา

เป็นภาษาที่มีความยืดหยุ่นสูง
เขียนโปรแกรมและใช้งานได้
บนเครื่องคอมพิ วเตอร์ทุกประเภท
และระบบปฏิบัติการทุกรูปแบบ






6

4 Fourth Generation Language

ถูกพั ฒนาขึ้นมาใหม่ เป็นภาษาคอมพิ วเตอร์ที่มีลักษณะการเขียนที่ไม่เป็น-
ลำดับขั้นตอนหรือไม่มีรูปแบบที่แน่นอน เพี ยงหยิบเอาปุ่มคำสั่งต่าง ๆ มาวาง
ผู้เขียนโปรแกรมรู้เพี ยงว่าให้คอมพิ วเตอร์ทำอะไรบ้างโดยไม่ต้องรู้วิธีการ
แต่เป็นหน้าที่ของภาษาคอมพิ วเตอร์ที่มาจัดการแทน รูปแบบของ-ภาษา
คอมพิ วเตอร์ในยุคนี้จึงช่วยให้การเขียนโปรแกรมง่าย สะดวก และรวดเร็ว
ขึ้น เรียกว่า "ภาษาระดับสูงมาก (Very-high-level language)"
ในยุคนี้ไม่ได้ถูกออกแบบมาเพื่ อทำงานด้วยตัวเอง แต่ถูกออกแบบมาให้
ทำงานร่วมกับภาษาอื่น ๆ ตัวอย่างเช่น นำภาษา SQL มาใช้กับ ภาษา PHP

5 Fifth Generation Language

มีความใกล้เคียงกับภาษาของมนุษย์มากยิ่งขึ้น เรียกว่า "ภาษาธรรมชาติ (Natural Language)"
ผู้ใช้สามารถสั่งงานด้วยเสียง เป็นการนำระบบฐานความรู้มาช่วย โดยจะแปลความของคำสั่ง
ให้คอมพิ วเตอร์เข้าใจและจำโครงสร้างของคำสั่งเหล่านั้นไว้ ภาษาธรรมชาติจะนำไปประยุกต์ใช้กับ
ระบบผู้เชี่ยวชาญและระบบปัญญาประดิษฐ์ ยกตัวอย่างเช่น การพั ฒนาหุ่นยนต์ให้มีความสามารถ-
ในการทำงานเหมือนมนุษย์และสื่อสารกับมนุษย์ได้ การใช้เสียงเป็นรหัสผ่านในการสั่งให้โปรแกรม-
ที่ กำ ห น ด ไ ว้ เ ริ่ ม ทำ ง า น

7

วิ วั ฒ น า ก า ร ข อ ง ภ า ษ า ซี

Evolution of C language

1970

มีการพั ฒนา "ภาษา B" โดย KEN THOMPSON 1972
ซึ่งทำงานบนเครื่อง DEC PDP-7

ซึ่งทำงานบนเครื่องไมโครคอมพิ วเตอร์ไม่ได้
และยังมีข้อจำกัดในการใช้งานอยู่

ภาษา B สืบทอดมาจาก ภาษา BCPL
เขียนโดย MARTH RICHARDS

Dennis M. Ritchie และ Ken Thompson
ได้สร้างภาษา C เพื่ อเพิ่ มประสิทธิภาพ ภาษา B ให้ดียิ่งขึ้น

ในระยะแรกภาษา C ไม่เป็นที่นิยมแก่นักโปรแกรมเมอร์
โดยทั่วไปนัก

8

1978

Brian W. Kernighan และ Dennis M. Ritchie
ได้เขียนหนังสือเล่มหนึ่งชื่อว่า

The C Programming Language
และหนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้ภาษา C

ในการเขียนโปรแกรมมากขึ้น

1981

เป็นช่วงของการพั ฒนาเครื่องไมโครคอมพิ วเตอร์

จากแต่เดิมภาษา C ใช้ Runบนเครื่องคอมพิ วเตอร์ 8 bit

ภายใต้ระบบปฏิบัติการ CP/M ของ IBM PC

ภาษา C มีบทบาทสำคัญในการนำมาใช้บนเครื่อง PC

และพั ฒนาต่อมาอีกหลาย ๆ ค่าย

ANSI (American National Standard Institute)

ได้กำหนดข้อตกลงที่เรียกว่า 3J11 เพื่ อสร้างภาษา C-

มาตรฐานขึ้นมา เรียนว่า ANSI C 9

1983

UP & UP: มุมมองของยอดเขาที่อยู่
ใกล้เคียงจากยอดเขาที่ท้าทายอีกแห่ง

Bjarne Stroustrup แห่งห้องปฏิบัติการเบล
ได้พั ฒนาภาษา C++ ขึ้น รายละเอียดและความสามารถของ C++

มีส่วนขยายเพิ่ มจาก C เช่น แนวความคิดของการเขียน
โปรแกรมแบบกำหนดวัตถุเป้าหมายหรือแบบ OOP (Object
Oriented- Programming) ซึ่งเป็นแนวการเขียนโปรแกรมที่

เหมาะกับ-
การพั ฒนาโปรแกรมขนาดใหญ่ที่มีความสลับซับซ้อนมาก

มีข้อมูลที่ใช้ในโปรแกรมจำนวนมาก จึงนิยมใช้เทคนิค
ของการเขียนโปรแกรมแบบ OOP

ในการพั ฒนาโปรแกรมขนาดใหญ่ในปัจจุบันนี้

NOW

ในปัจจุบันการเขียนโปรแกรมได้มีการพั ฒนาไปอย่างมาก
มีภาษาในการเขียนโปรแกรมเพิ่ มขึ้นมากมาย

แม้ว่าภาษาอื่นจะเป็นที่นิยมมากกว่า เช่น ภาษาไพทอน
แต่ถึงยังไงภาษาซีก็ยังคงเป็นที่นิยม

และใช้งานอย่างแพร่หลายอยู่จนถึงตอนนี้

10

ลักษณะเด่นของภาษาซี

1. ความสามารถในการใช้งานบนสภาพแวดล้อมที่แตกต่างกัน (Portability)
เป็นลักษณะเด่นที่ถือเป็นจุดเด่นของภาษา C เลยที่เดียว กล่าวคือภาษา C

สามารถรันอยู่บนคอมพิ วเตอร์ได้หลายระดับ ตั้งแต่เมนเฟรมคอมพิ วเตอร์
จนถึงไมโครคอมพิ วเตอร์ ดังนั้นซอร์สโค้ดภาษา C ที่เขียนในคอมพิ วเตอร์ระดับหนึ่ง
สามารถนำไปใช้งานบนคอมพิ วเตอร์อีกระดับหนึ่งโดยไม่ต้องเปลี่ยนชุดคำสั่งเลย
และยังสามารถนำไปใช้งานบนระบบปฏิบัติการที่แตกต่างกันได้อีกด้วย

2. มีประสิทธิภาพสูง (Efficiency)
ประสิทธิภาพที่นำมาใช้วัดกับภาษา C สามารถวัดได้จาก 2 แนวทางคือ

- ชุดคำสั่งที่มีความกระทัดรัด และกระชับมาก
- การจัดการหน่วยความจำบนภาษา C มีประสิทธิภาพสูงมาก
- มีการทำงานที่รวดเร็ว เทียบเท่าภาษาระดับต่ำ ทั้งนี้เนื่องจากภาษา C
มีความใกล้ชิดกับฮาร์ดแวร์มากกว่าภาษาระดับสูงอื่นๆ โดยสามารถติดต่อกับรีจิสเตอร์
และหน่วยความจำโดยตรง เช่นเดียวกับภาษาแอสแซมบลี

3. ความสามารถในการโปรแกรมแบบโมดูล (Modularity)
ภาษา C อนุญาตให้มีการแบ่งโมดูลเพื่ อคอมไพล์ได้ ซึ่งสามารถลิงค์เชื่อมโยงเข้ากันได้ดี

รูปแบบโปรแกรมสามารถเขียนขึ้นได้ตามแบบแผนการโปรแกรมเชิงโครงสร้างได้อย่างดีเยี่ยม
ภาษา C คือภาษาที่ประกอบด้วยฟังก์ชั่น ทั้งนี้โมดูลต่างๆจะเขียนอยู่ในรูปของฟังก์ชั่นทั้งสิ้น

4. ตัวอักษรตัวพิ มพ์ เล็กและตัวอักษรพิ มพ์ ใหญ่แตกต่างกัน (Case Sensitivity)
ตามปกติภาษาระดับสูงทั่วไปตัวแปรที่ตั้งขึ้นด้วยตัวอักษรพิ มพ์ เล็กและตัวพิ มพ์ ใหญ่

สามารถนำมาใช้ร่วมกันได้ แต่ในภาษา C จะถือว่าแตกต่างกันอย่างสิ้นเชิง
เช่น NUM ไม่เท่ากับ num

5. มีความยืดหยุ่นสูง (Flexible Level) 11
ถึงแม้นภาษา C จะจัดอยู่ในภาษาคอมพิ วเตอร์ระดับสูงก็ตาม แต่ภาษา C ก็ยังสามารถ

เขียนใช้งานร่วมกับภาษาระดับต่ำอย่างภาษาแอสแซมบลีได้

โครงสร้างภาษาซี

คำสั่งที่ใช้งานในภาษา C นั้นล้วนเป็นฟังก์ชั่นทั้งสิ้น
ดังนั้นโปรแกรมที่เขียนขึ้นจึงประกอบไปด้วยฟังก์ชั่นมากมาย
ที่ถูกกำหนดให้ทำหน้าที่ใดหน้าที่หนึ่งในลักษณะของโมดูลย่อย
เพื่ อทำงานให้บรรลุเป้าหมาย และในเมื่อภาษา C คือภาษาที่-
ประกอบไปด้วยฟังก์ชั่น ดังนั้นจึงจำเป็นทำความเข้าใจเกี่ยวกับ
ความหมายของฟังก์ชั่นก่อน

ฟังก์ชั่น (Function) คือ ชุดคำสั่งที่เขียนขึ้นเพื่ อสั่งให้คอมพิ วเตอร์ทำงาน ที่อนุญาตให้สามารถ
รับข้อมูล (Input) ประมวลผล (Processes) และแสดงผลข้อมูล (Output) โดยฟังก์ชั่นที่ถูกเขียน
ขึ้นใช้งาน และสามารถเรียกมาใช้งานได้ทันที จะถูกจัดเก็บไว้ในไลบารีมาตรฐาน (Standard Library)
ในขณะที่ฟังก์ชั่นอื่นๆจะเป็นฟังก์ชั่นที่ถูกเขียนขึ้นโดยโปรแกรมเมอร์ อย่างไรก็ตามในภาษา C
จะมีฟังก์ชั่นพิ เศษฟังก์ชั่นหนึ่งที่จำเป็นต้องมีไว้ในโปรแกรมเสมอ คือ ฟังก์ชั่น main() ทั้งนี้ฟังก์ชั่น-
ดังกล่าวจัดเป็นฟังก์ชั่นหลักที่นำมาใช้เป็นจุดเริ่มต้นของโปรแกรมเพื่ อสั่งให้ทำงาน โดยฟังก์ชั่นอื่น ๆ
จะถือเป็นรูทีนย่อย (Subroutines)

12

โครงสร้างของภาษา C

แบ่งเป็นส่วนสำคัญต่างๆ ดังนี้

1 . พ รีโ ป ร เ ช ส เ ช อ ร์ ไ ด เ ร ค ที ฟ
(PRE-PROCESSOR DIRECTIVE)

ส่วนหัวของโปรแกรม(Header File)เป็นส่วนสำคัญส่วนหนึ่งของภาษา
C เป็นส่วนที่บอกให้คอมไพล์เลอร์รับทราบว่า ให้นำไฟล์ส่วนดังกล่าวมา
คอมไพล์ร่วมด้วยดังตัวอย่างเฮดเดอร์ไฟล์ คือ #include <stdio.h>
โดยชื่อเฮดเดอร์ไฟล์ที่ผนวกเข้ามาสามารถเขียนอยู่ภายในเครื่องหมาย-
< > หรือ " " ก็ได้

เฮดเดอร์ไฟล์เป็นไฟล์ชนิดข้อความ (Text File) ที่ภายในโปรแกรมจะมีการ-
ประกาศค่าตัวแปร และค่าคงที่ต่าง ๆ ซึ่งจะบรรจุฟังก์ชั่นมาตรฐานต่าง ๆ
รวมเข้าด้วยกันตามลักษณะงานที่ใช้

เฮดเดอร์ไฟล์ที่เรานิยมใช้บ่อยมีอยู่ 2 เฮดเดอร์ คือ stdio.h และ conio.h

1.stdio.h เป็นเฮดเดอร์ที่เกี่ยวข้องกับฟังชั่นอินพุ ตและเอาต์พุ ต
เช่น ฟังก์ชั่น printf( ), scanf ( )
2.conio.h เป็นเฮดเดอร์ที่เกี่ยวกับฟังก์ชั่น รอรับคำสั่ง เช่น getch ( )

13

2.ฟังก็ชั่นหลัก (Main Function)

ฟังก็ชั่น main( ) ในภาษา C จัดเป็นฟังก็ชั่นที่ทำหน้าเสมือนกับเป็นโปรแกรมหลักที่สั่ง
ให้ชุดคำสั่งทำงานรวมถึงการเรียกใช้ฟังก์ชั่นย่อย ๆ อื่นทำงาน กล่าวคือการสั่งงาน
ในโปรแกรมจะอยู่ภายในฟังก์ชั่น main ( ) นั่นเอง

3.ประโยคคำสั่ง (Compound Statement)

เป็นชุดคำสั่งที่บรรจุอยู่ในฟังชั่นนั่น ๆ ซึ่งอาจจะเป็น
- ประโยคที่ใช้สำหรับประกาศตัวแปร (Variable) หรือการกำหนดค่าเริ่มต้นให้
กับตัวแปรต่าง ๆ โดยตัวแปรที่ใช้งานในโปรแกรมจำเป็นต้องได้รับการประกาศ
ชนิดข้อมูลของตัวแปรนั้น ๆ ด้วย
- ประโยคนิพจน์คณิตศาสตร์ เช่น ประโยคคำนวณตัวเลขต่าง ๆ
- ประโยคคำสั่งควบคุมอื่น ๆ เช่น คำสั่งควบคุมวงจรลูป คำสั่งควบคุมเงื่อนไข

4. คำอธิบายภายในโปรแกรม (Program Comment)

คำอธิบายโปรแกรม เป็นส่วนที่ผู้เขียนโปรแกรมนำมาใช้อธิบายจุดสำคัญต่าง ๆ ภายใน-
โปรแกรม เช่น ใช้อธิบายจุดประสงค์ของโปรแกรมส่วนนั้น ๆ รวมถึงการป้องการหลงลืม
กรณีที่ต้องกลับมาปรับปรุงโปรแกรมใหม่ รูปแบบการเขียนคำอธิบายในภาษา C
/*คำอธิบาย*/ หรือ //คำอธิบาย เช่น /*comment*/ หรือ //comment

14

อักขระในภาษา C

ภ า ษ า C ไ ด้ เ ต รี ย ม ก ลุ่ ม อั ก ข ร ะ ต่ า ง ๆ ใ ห้ ใ ช้ ง า น ที่ เ รี ย ก ว่ า C h a r a c t e r S e t s
โ ด ย แ บ่ ง อ อ ก เ ป็ น 2 ก ลุ่ ม ใ ห ญ่ ๆ คื อ
Basic Character Set และ Execution Character Set

1. Basic Character Set
ประกอบด้วยกลุ่มอักขระ ดังต่อไปนี้

- อักษรตัวพิ มพ์ ใหญ่ (Alphabets Upper Case) ประกอบด้วยอักษร A-Z จำนวน 26 ตัว
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- อักษรตัวพิ มพ์ เล็ก (Alphabets Lower Case) ประกอบด้วยอักษร a-z จำนวน 26 ตัว
abcdefghijklmnopqrstuvwxyz
- ตัวเลข (Decimal Digits) ประกอบไปด้วยตัวเลข 0 - 9 จำนวน 10 ตัว
0123456789

15

- ตัวอักขระแบบกราฟิก ประกอบด้วยสัญลักษณ์ต่างๆ จำนวน 29 ตัว

, (comma) ( (left parenthesis)

; (semicolon) ) (right parenthesis)

. (period) [ (left bracket)

? (question mark) ] (right bracket)

! (exclamation) { (left brace)

: (colon) } (right brace)

+ (plus) < (less than)

- (minus) > (greater than)

* (asterisk) = (equal sign)

/ (slash) & (ampersand)

\ (backslash) % (percent sign)

| (vertical bar) # (number sign)

' (single quote) ^ (caret)

" (double quote) _ (under score)

~ (tild)

- ตัวอักขระแบบช่องว่าง (White Space Character)
ประกอบด้วยอักขระที่เป็นช่องว่างในลักษณะต่างๆ จำนวน 5 ตัว ดังนี้
blank space, horizontal tab, vertical tab, newline, form feed

2.Execution Character Set
ป ร ะ ก อ บ ด้ ว ย ก ลุ่ ม อั ก ข ร ะ ดั ง ต่ อ ไ ป นี้

- อักขระที่เป็นค่าว่าง (Null Character) อักขระที่เป็นค่าว่าง หรือค่า Null จะใช้สัญลักษณ์ \0

- อักขระควบคุม (Escape Sequence)เป็นรหัสที่ใช้ควบคุมการแสดงผลทางจอภาพและเครื่องพิ มพ์

\a alert (bell) \\ backslash

\b backspace \? backslash

\f form feed \' single quote

\n new line \" double quote

\r carriage return \ooo octal number

\t horizontal tab \xhh hexadecimal number

\v vertical tab 16

กฎเกณฑ์การเขียนภาษาซี

กฎเกณฑ์ในการเขียนภาษา C ที่ควรคำนึง มีดังนี้
1. จะต้องกำหนดพรีโปรเชสเชอร์ที่ต้นโปรแกรมก่อน เช่น
#include<stdio.h>, #include<conio.h>
2. คำสั่งต่างๆจะใช้อักษรพิ มพ์ เล็ก
3. ตัวแปรที่ใช้งานในโปรแกรมต้องประกาศไว้เสมอ
4. ภายในโปรแกรมต้องมีอย่างน้อยหนึ่งฟังก์ชั่น คือ main ( )
5. ใช้เครื่องหมาย { เพื่ อบอกจุดเริ่มต้นของชุดคำสั่ง
และเครื่องหมาย } เพื่ อบอกจุดสิ้นสุดของชุดคำสั่ง
โดยสามารถซ้อนเครื่องหมาย { } เพิ่ มไว้ภายในได้
6. สิ้นสุดของแต่ละประโยคคำสั่ง จะต้องจบด้วยเครื่องหมาย ;
(semicolon)
7. สามารถใช้เครื่องหมาย /*comment*/ หรือ //comment เพื่ อระบุ
หมายเหตุภายในโปรแกรม โดยคำอธิบายที่อยู่ภายใต้เครื่องหมาย
/*comment*/ หรือ //comment
จะไม่ถูกนำไปประมวลผล

17

ตัวแปลภาษา (Translator)

เนื่องจากภาษาคอมพิ วเตอร์โดยเฉพาะภาษารับสูง จะมีจุดประสงค์เพื่ อให้มนุษย์
สามารถสื่อสารเพื่ อการเขียนโปรแกรมได้ง่ายขึ้น แต่ภาษาระดับสูงเป็นภาษาที่-
คอมพิ วเตอร์ไม่รู้จัก ดังนั้นจึงต้องนำภาษาระดับสูงผ่านกระบวนการแปล
เพื่ อให้เป็นภาษาเครื่องเสียก่อน ตัวแปลภาษาแบ่งออกเป็น 2 ชนิด คือ

1.อินเตอร์พรีเตอร์ (Interpreter)

ตัวแปลภาษาชนิดอินเตอร์พรีเตอร์ จะทำการแปลคำสั่งที่ละคำสั่ง และจะปฏิบัติตาม-
ในคำสั่งนั้น ๆ หากไม่พบข้อผิดพลาดใดๆ จากนั้นก็จะนำคำสั่งต่อไปมาแปลต่อ
จะกระทำเช่นนี้ไปเรื่อยๆจนจบ ถ้ามีข้อผิดพลาดในโปรแกรม เครื่องก็จะหยุดแล้ว-
รายงานให้ทราบทันทีทางจอภาพ

ข้อดี

- หาข้อผิดพลาดของโปรแกรมได้ง่ายเนื่องจากทำการแปลผลทีละบรรทัด
- เนื่องจากทำงานทีละบรรทัดดังนั้นจึงสั่งให้โปรแกรมทำงานตามคำสั่งเฉพาะจุดที่ต้องการได้
- ไม่เสียเวลารอการแปลโปรแกรมเป็นเวลานาน

ข้อเสีย

-ช้า เนื่องจากที่ทำงานทีละบรรทัด

18

2.คอมไพลเลอร์ (Compiler)

การแปลของคอมไพล์จะแปลทั้งโปรแกรมที่เดียว นั่นคือ ซอร์สโค้ดทั้งโปรแกรมจะถูกนำ-
มาแปลเพี ยงครั้งเดียว ถ้าเจอข้อผิดพลาดก็จะรายงานให้ทราบเพี ยงครั้งเดียวโดยไม่บอก-
ตำแหน่งของการผิดพลาด

ข้อดี

- ทำงานได้เร็ว เนื่องจากทำการแปลผลทีเดียว แล้วจึงทำงานตามคำสั่งของโปรแกรมในภายหลัง
- เมื่อทำการแปลผลแล้ว ในครั้งต่อไปไม่จำเป็นต้องทำการแปลผลใหม่อีก เนื่องจากภาษาเครื่อง-
ที่แปลได้จะถูกเก็บไว้ที่หน่วยความจำสามารถเรียกใช้งานได้ทันที

ข้อเสีย

เมื่อเกิดข้อผิดพลาดขึ้นกับโปรแกรมจะตรวจสอบหาข้อผิดพลาดได้ยาก
เพราะทำการแปลผลทีเดียวทั้งโปรแกรม

19

ตัวแปร (Variable)

ตัวแปร (Variable) คือการจองพื้ นที่ในหน่วยความจำของคอมพิ วเตอร์สำหรับเก็บข้อมูล
ที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย
เพื่ อความสะดวกในการเรียกใช้ข้อมูล ถ้าจะใช้ข้อมูลใดก็ให้เรียกผ่านชื่อของตัวแปรที่เก็บเอาไว้

กฎการตั้งชื่อตัวแปร (Variable Names)

การตั้งชื่อตัวแปรและค่าคงที่ จำเป็นต้องคำนึงถึงกฎเกณฑ์ต่าง ๆ ดังนี้ คือ
1.ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่านั้น
2.ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข 0-9

หรือเครื่องหมาย _ (Underscore)
3.ภายในชื่อห้ามเว้นช่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2
4.ตัวอักษรพิ มพ์ เล็กหรือใหญ่มีความหมายแตกต่างกัน
5.ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word)

ชนิดข้อมูลและขนาด (Data Type and Sizes)

ตัวแปรที่ประกาศใช้งานในโปรแกรม จำเป็นต้องถูกระบุชนิดข้อมูลเพื่ อให้ทราบว่าตัวแปรเหล่านั้น
จัดเก็บข้อมูลชนิดใดลงไป สำหรับในภาษา C จะมีข้อมูลพื้ นฐานไม่กี่ชนิด คือ

char - ข้อมูลชนิดตัวอักษร (Character) float - ข้อมูลชนิดตัวเลขจำนวนจริง(ทศนิยม)
(Read or Floating Point)

int - ข้อมูลชนิดเลขจำนวนเต็ม (Integer) double - ข้อมูลชนิดเลขจำนวนจริง 2 เท่า
(Double Precision Float)

20

การกำหนดค่าให้กับตัวแปร (Presetting Variable
Values)

คือการกำหนดค่าให้กับตัวแปร จะต้องกำหนดให้เป็นไปตามกฎ และต้องสัมพั นธ์กับ-
ชนิดข้อมูลที่ประกาศไว้เป็นสำคัญ เช่น หากกำหนดตัวแปรเป็นชนิดข้อมูล int
ค่าที่กำหนดให้กับตัวแปรก็จะต้องเป็นเลขจำนวนเต็มเท่านั้น ไม่สามารถกำหนดเป็น-
เลขทศนิยมหรือข้อความได้

การกำหนดค่าชนิดเลขจำนวนเต็ม

1.ค่าตัวเลขจะต้องไม่มีทศนิยม
2.สามารถเป็นได้ทั้งค่าบวกและค่าลบ
3.สำหรับค่าบวกไม่จำเป็นต้องใส่เครื่องหมาย
4.ห้ามใช้เครื่องหมายคอมม่า,หรือช่องว่างกำกับระหว่างตัวเลข

เช่น 14,560 ซึ่งถือว่าผิด
5.ช่วงค่าตัวเลขจำนวนเต็ม จะอยู่ระหว่าง -2,147,483,647 ถึง 2,147,483,647
6.สามารถใช้ Suffix ต่อท้ายค่าได้ เช่น เลขจำนวนเต็มแบบยาว ก็จะใช้อักษร L
(ตัวพิ มพ์ เล็กหรือใหญ่ก็ได้) ต่อท้ายค่า ส่วนค่าที่เป็น unsign ก็จะใช้อักษร U ต่อท้าย
และใช้ UL ต่อท้ายค่าที่เป็น unsigned long)
เช่น

n1 = 445; //int
n2 = +557;
n3 = -6687;
n4 = 123456789L; //long int
n5 = 1234U; //unsigned int
n6 = 123456789UL; //unsigned long int

การกำหนดค่าชนิดเลขจำนวนจริง 21

1.ค่าตัวเลขสามารถมีจุดทศนิยมได้
2.สามารถเป็นได้ทั้งค่าบวกและลบ
3.ค่าบวกไม่จำเป็นต้องใส่เครื่องหมาย + นำหน้า
4.สามารถกำหนดค่าแบบเอ็กซ์โปแนนต์ได้ด้วยการใช้อักษร E ต่อท้ายค่า
5.ค่าที่ถูกกำหนดเป็นค่าเอ็กซ์โปรเนนต์สามารถเป็นได้ทั้งค่าบวกและลบ
6.ช่วงของค่าตัวเลขชนิดจำนวนจริงเป็นไปตามชนิดข้อมูล

ซึ่งอาจถูกกำหนดเป็น float, double หรือ long double
7.สำหรับค่าจำนวนจริงชนิด double จะใช้ F ต่อท้ายค่าและใช้ L ต่อท้ายค่าที่กำหนด-

ชนิดข้อมูลเป็น long double

การกำหนดค่าชนิดตัวอักษร

1.ค่าที่กำหนดจะต้องอักขระเพี ยงค่าเดียวและจะต้องอยู่ภายในเครื่องหมาย ' '
ไม่ใช่เครื่องหมาย " " ดังนั้นจึงต้องพึ งระมัดระวังเป็นพิ เศษด้วย
2.ขนาดจำนวนตัวอักษรในภาษา C จะมองเป็น ASCII ที่ใช้แทนตัวอักขระต่าง ๆ เช่น
ค่า 'A' จะมีค่าเท่ากับ 65 หรือค่า 'a' จะมีค่าเป็น 97

ตัวแปรสำหรับข้อความ

ในภาษา C ไม่มีการกำหนดชนิดของตัวแปรสำหรับข้อความโดยตรง แต่จะใช้การ-
กำหนดชนิดของตัวแปรอักขระ (char) ร่วมกับการกำหนดขนาดแทน และจะเรียก-
ตัวแปรสำหรับเก็บข้อความว่า ตัวแปรสตริง (string) รูปแบบการประกาศตัวแปร

เช่น char name[n] = "str";

name - ชื่อของตัวแปร

n - ขนาดของข้อความ หรือจำนวนอักขระในข้อความ

str - ข้อความเริ่มต้นที่จะกำหนดให้กับตัวแปรซึ่งต้องเขียนไว้ภายใต้เครื่องหมาย " "

การประกาศตัวแปร (Declarations)

ตัวแปรทุกตัวจำเป็นจะต้องประกาศก่อนใช้งานเสมอ แต่อย่างไรก็ตามภาษา C
ก็ยังสามารถประกาศตัวแปรได้หลายรูปแบบ ซึ่งประกอบด้วย

1.การประกาศตัวแปรที่ละตัว ที่ละบรรทัด เช่น 22

int lower;
int upper;
int step;
char c;
char line[1000];

2.การประกาศกลุ่มตัวแปรพร้อมกัน เช่น

int lower, upper, step;

3.การกำหนดตัวแปรพร้อมกำหนดค่าเริ่มต้น เช่น

char esc='\\';
int i=0;

4.ประกาศตัวแปรชนิดค่าคงที่ เช่น

const double e=3.14;
const char msg[ ]= "warning...."

ตัวดำเนินการ
และ
นิพจน์

ตัวเนินการทางคณิตศาสตร์ (Arithmetic Operators)

ตัวดำเนินการทางคณิตศาสตร์ มี 5 ตัว คือ

+ การบวก (addition)

- การลบ (subtraction)

* การคูณ (multiplication)

/ การหาร (division)

% การหารเอาเศษ (modulus)

ตัวดำเนินการยูนารี (U nary Operators)

ตัวดำเนินการ นิพจน์ ความหมาย
++ (prefix) ++a เพิ่ มค่าที่ละหนึ่งให้กับ a ก่อนแล้วจึงนำค่าใหม่ของ a ในนิพจน์นี้ไปใช้
++ (prefix) a++ นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยเพิ่ มค่า a อีก
หนึ่ง
-- (prefix) --b ลดค่าลงอีกหนึ่งให้กับ b ก่อน แลัวจึงนำค่าใหม่ของ b ในนิพจน์นี้ไป
ใช้
-- (prefix) b-- นำค่าค่าปัจจุบันของ b ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยลดค่า b
ลงหนึ่ง




23

ตัวดำเนินการเปรียบเทียบและตรรกะ (Comparison and Logical-

Operators)

< น้อยกว่า


<= น้อยกว่าหรือเท่ากับ

> มากกว่า

>= มากกว่าหรือเท่ากับ

== เท่ากับ

!= ไม่เท่ากับ

นอกจากนี้ ยังมีตัวดำเนินการแบบตรรกะ ซึ่งประกอบด้วย

&& และ (and)
|| หรือ (or)
! ไม่ใช่ (not)

ตัวดำเนินการระดับบิต (Bit wise Operator)

& บิตไวส์ AND
| บิตไวส์ OR
^ บิตไวส์ XOR (exclusive OR)
~ คอมพลีเมนต์
>> เลื่อนบิตไปทางขวา
<< เลื่อนบิตไปทางซ้าย

ตัวดำเนินการกำหนดค่า (Assignment operator)

ในภาษา C มีหลายวิธีด้วยกันในการกำหนกค่าให้กับตัวแปร ซึ่งปกติตัวดำเนินการกำหนดค่า
มักจะใช้เครื่องหมาย = และการกำหนดค่านิพจน์ก็จะใช้เครื่องหมาย + เช่นกัน
สำหรับรูปแบบของตัวดำเนินการกำหนดค่า สามารถเขียนได้ตามรูปแบบดังนี้

variable_name = expression

variable_name หมายถึง ชื่อตัวแปร
expression หมายถึง นิพจน์ซึ่งสามารถเป็นค่าคงที่ ตัวแปร รวมถึงสูตรทาง
คณิตศาสตร์ที่ซับซ้อน

24

ตัวดำเนินการเงื่อนไข (Conditional Operator)

ตัวดำเนินการเงื่อนไข จะนำมาใช้เพื่ อทดสอบค่านิพจน์ทางตรรกะว่าจริงหรือเท็จ
โดยมีรูปแบบดังนี้ คือ

expression 1 ? expression 2 : expression 3



expression 1 หมายถึง นิพจน์เงื่อนไข
expression 2 หมายถึง ค่าที่ได้ กรณีเป็นจริง
expression 3 หมายถึง ค่าที่ได้ กรณีเป็นเท็จ

ตัวดำเนินการบอกขนาดชนิดข้อมูล (Size of Operator)

ตัวดำเนินการประเภทนี้ จะทำให้เราทราบว่า ชนิดข้อมูลแต่ละชนิดที่มีอยู่ในเครื่องมีขนาดเท่าใด
ทั้งนี้ชนิดข้อมูลจะมีขนาดเท่าใดนั้น จะสามารถทราบได้จากตัวดำเนินการ sizeof
ซึ่งมีรูปแบบการเขียนดังนี้

sizeof (expression)

โดย : expression หมายถึง ชนิดข้อมูล หรือตัวแปร

25

การรับและแสดงผลข้อมูล
(Data Input and Output)

ภาษาซีได้เตรียมฟังก์ชันไว้ในไลบรารีมาตรฐาน หากมีความต้องการใช้ฟังก์ชันมาตรฐานเหล่านี้
จัดต้องผนวกเฮดเดอร์ไฟล์ที่เกี่ยวข้อมาไว้ที่ต้นโปรแกรม โดยเฮดเดอร์ไฟล์ที่เก็บไลบรารี
เกี่ยวข้องกับการรับและแสดงผลข้อมูล(Standard I/O Library) ก็คือไฟล์ stdio.h
จึงเป็นที่มาของการผนวกพรีโปรเชสเซอร์ #include<stdio.h>ไว้ที่ต้นโปรแกรม
เพื่ อให้สามารถใช้งานฟังก์ชันที่เกี่ยวกับ I/O ได้นั่นเองฟังก์ชันมาตรฐานที่ควรรู้มีดังนี้ คือ

1. การรับและแสดงผลข้อมูล (เฮดเดอร์ไฟล์ stdio.h)
2. การรับแป้นคีย์ ล้างจอภาพ และกำหนดตำแหน่งแสดงผลทางจอภาพ (เฮดเดอร์ไฟล์ conio.h)

คำสั่งควบคุม
เงื่อนไข

ในภาษาซีจะใช้ประโยคเงื่อนไข if
เพื่ อสร้างเงื่อนไข และตรวจสอบ
เงื่อนไขว่าเป็นจริงหรือเท็จ ทั้งนี้
ประโยค if ดังกล่าว ยังสามารถนำ
มาใช้งานเพื่ อเปรียบเทียบเงื่อนไข
อย่างง่าย จนถึงเงื่อนไขที่ซับซ้อน
สูงได้

การควบคุมเงื่อนไขด้วย if-statement

1. ประโยคเงื่อนไข if อย่างง่ายหรือเรียกว่า if แบบทางเลือกเดียว (Basic if Statement)

ตามหลักความเป็นจริงของชีวิตมนุษย์การดำเนินชีวิตทุกวันล้วนแต่มีเงื่อนไขรองรับแทบทั้งสิ้น เช่น
ในวันฟ้าโปร่งจะเดินทางไปทำงานปกติ แต่ถ้าวันไหนฝนตกก็จะต้องพกร่มไปด้วยทุกครั้ง ซึ่งเงื่อนไขดังกล่าว
เป็นเงื่อนไขทางเดียวง่าย ๆ ที่สามารถเขียนเป็นผังงาน (Flow Chart) ได้ดังรูป

ตัวอย่างโปรแกรม

27

2. ประโยคคำสั่งตัดสินใจแบบสองทางเลือกด้วย if...else

คำสั่ง if...else เป็นคำสั่งที่เราใช้กำหนดให้โปรแกรมตัดสินใจเลือกทำคำสั่งอย่างใดอย่างหนึ่ง
จาก 2 ทางเลือก โดยตรวจสอบเงื่อนไขที่กำหนดว่าเป็นจริงหรือเท็จ ถ้าเงื่อนไขที่กำหนดเป็นจริง (True)
โปรแกรมจะทำงานที่ชุดคำสั่งที่อยู่ภายใต้คำสั่ง if แต่ถ้าเงื่อนไขที่กำหนดให้เป็นเท็จ (false) โปรแกรมจะ-
ทำงานที่ชุดคำสั่งที่อยู่ภายใต้คำสั่ง else

ตัวอย่างโปรแกรม

3. ประโยคคำสั่งตัดสินใจแบบหลายทางเลือกด้วยคำสั่ง if...else if

คำสั่ง if...else if เป็นคำสั่งที่เราใช้กำหนดให้โปรแกรมตัดสินใจเลือกทางใดทางหนึ่ง จากหลายทางเลือก

ซึ่งมากกว่า 2 ทางเลือก และแต่ละทางเลือกจะมีเงื่อนไขของแต่ละทางเลือกไว้ด้วย โดยโปรแกรมจะตรวจ-

สอบเงื่อนไขแต่ละทางเลือก หากพบว่าทางเลือกไหนมีเงื่อนไขเป็นจริง (True) ก็จะทำงานที่ชุดคำสั่งภายใน-

ทางเลือกนั้น โดยไม่พิ จารณาทางเลือกอื่นโดยไม่พิ จารณาทางเลือกอื่นที่ยังไม่ได้ตรวจสอบอีก ในกรณีที่-

เงื่อนไขเป็นเท็จ (false) ก็จะไปตรวจสอบเงื่อนไขต่อไป และในกรณีที่เงื่อนไขทั้งหมดเป็นเท็จ โปรแกรมจะ-

ทำงานที่ชุดคำสั่งภายใต้คำสั่ง else ตัวอย่างโปรแกรม

28

4. การควบคุมเงื่อนไขด้วย switch-case (switch-statement)

นอกจากประโยคคำสั่ง if-else แล้วในภาษา c ก็ยังมีการควบคุมเงื่อนไขด้วยการใช้ประโยคคำสั่ง

switch โดยประโยคคำสั่ง switch เหมาะกับการนำไปประยุกต์ใช้กับโปรแกรมที่มีเมนูให้เลือกรายการ

ต่าง ๆ

switch (integer_expression) ตัวอย่างโปรแกรม
{

case constant_1;
statement_1;
break;



case constant_2;
statement_2;
break;



case constant_3;
statement_3;
break;



default;
statement;



}




ข้อแตกต่างระหว่างประโยคคำสั่ง if-else และ switch

1. นิพจน์ชนิดตัวเลขจำนวนจริง ที่มีจุดทศนิยมจะนำมาตรวจสอบด้วย switch ไม่ได้
2. ชนิดข้อมูลที่สามารถนำมาใช้ตรวจสอบใน switch คือชนิดข้อมูลแบบ int หรือ char
3. การตรวจสอบค่าใน case ของ switch แต่ละกรณีไม่สามารถนำค่าตัวแปรมาใช้ได้
(เช่น case a+1: ถือว่าใช้งานไม่ได้
4. switch ไม่สามารถตรวจสอบหลาย ๆ เงื่อนไขภายในนิพจน์เดียวกันได้ เช่น

switch(num)
{
case > 0 && <5
::
}



29

บรรณานุกรม

การเขียนโปรแกรมคอมพิวเตอร์ด้วยภาษา C. 2559. "ภาษา C (History Of C)". โรงเรียนเมยวดีพิทยาคม (Online).
https://shorturl.asia/nuXaB, 20 กรกฎาคม 2565.

ธัชพล เเสงสำลี เเละ มูลดี. มปป. "วิวัฒนาการของภาษา C". Blogger (Online).


http://tuchchapron.blogspot.com/p/c_9.html, 13 กรกฎาคม 2565.

วัฒนา วัฒนสุวกุล. 2559. "บทที่ 1 ภาษาซีเบื้องต้น”. บ้านไร่วิทยา (Online).
https://shorturl.asia/j1G25, 4 กรกฎาคม 2565.

วรรณวิศา ปานทอง เเละ ผกาวรรณ พลทอง. มปป. "วิวัฒนาการของภาษาของคอมพิวเตอร์". Anyflip (Online).


https://anyflip.com/kyipr/nsde/basic, 12 กรกฏาคม 2565.

วิกิพีเดีย. 2556. "เรื่องซี (ภาษาโปรแกรม)". Wikipedia (Online).
https://shorturl.asia/qO97e, 3 กรกฎาคม 2565.

IT Info. 2564. “วิธีสร้าง Ebook ใน Canva”. TH Atsit (Online).


https://br.atsit.in/th/?p=15450, 4 กรกฎาคม 2565.

Wim Hoogenraad. 2562. “ภาษาแอสเซมเบลอร์คืออะไร”. ITpedia (Online).
https://shorturl.asia/J7R3E, 5 กรกฎาคม 2565.

30

จัดทำโดย

นาย กรรณพล รอดเจริญ ม.4/3 เลขที่ 8
นาย อัฑฒโณ สุพรหม ม.4/3 เลขที่ 17
นางสาว มาตา คีรินทร์นนท์ ม.4/3 เลขที่ 21


Click to View FlipBook Version