ความรู้พื้นฐานโปรแกรมภาษาซี

โครงสร้างของโปรแกรมภาษาซี

ข้อความสั่งตัวประมวลผลก่อน
(preprocessor statements)

รหัสต้นฉบับ (source code)

หมายเหตุ (comment)

ข้อความสั่งประกาศครอบคลุม (global declaration statements)

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

ต้นแบบฟังก์ชัน (function prototypes)

ฟังก์ชันหลัก (main function) มีเพียงฟังก์ชันเดียว

ฟังก์ชัน (functions) มีได้หลายฟังก์ชัน

ข้อความสั่งประกาศตัวแปรเฉพาะที่ (local declaration statements)

ข้อความสั่งตัวประมวลผลก่อนขึ้นต้นด้วยเครื่องหมาย # เช่น

include <stdio.h>

ใช้เครื่องหมาย // หน้าข้อความหมายเหตุ ใช้ได้กับหมายเหตุที่มีขนาดความยาวไม่เกิน 1 บรรทัด

เขียนหมายเหตุไว้ระหว่าง / และ / ใช้ได้กับหมายเหตุที่มีขนาดความยาวตั้งแต่ 1บรรทัดขึ้นไป

ตัวแปร (variables)

กฎการตั้งชื่อตัวแปร

ห้ามใช้ชื่อเฉพาะ

ชนิดข้อมูล (data types)

ตัวแปรชนิดตัวเลข (numeric variable types)

การประกาศตัวแปร

ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก มีความหมายที่แตกต่างกัน

อักขระตัวแรกต้องเป็น a ถึง z และ _

ยาวสูงสุด 31 ตัวอักษร

ประกอบด้วย a ถึง z, 0 ถึง 9 และ _ เท่านั้น

ไอที

ตัวแปรจํานวนเต็ม (integer variables)

ตัวแปรจํานวนจริง (real variables) หรือ ตัวแปรจุดลอยตัว

ทำได้โดยเขียนข้อความสั่งขึ้นต้นด้วยชนิดข้อมูล ตามด้วยชื่อตัวแปร และจบข้อความสั่งประกาศตัวแปรด้วยเครื่องหมายอัฒภาค (;)

ถ้าต้องการประกาศตัวแปรชนิดเดียวกันหลายตัว ต้องคั่นระหว่างตัวแปลด้วยเครื่องหมายจุลภาค (,) และจบข้อความสั่งประกาศตัวแปรด้วยเครื่องหมายอัฒภาค (;)

ตัวคงที่ (constant)

การกําหนดค่าให้ตัวแปรชนิดตัวเลข

ตัวแปรชนิดอักขระ (character variable types)

ทําได้โดยการประกาศตัวแปรและกําหนดค่าให้กับตัวแปรไว้ในคําสั่งเดียวกันหรือ อาจทําได้อีกวิธีหนึ่งคือ ประกาศตัวแปรก่อน จากนั้นจึงกําหนดค่าให้กับตัวแปรในอีกข้อความสั่งหนึ่ง

ถูกจัดเก็บไว้ในหน่วยความจํา ในรูปแบบจํานวนเต็ม ขนาด 1 ไบต์ ดังนั้น
ตัวแปรชนิดอักขระจึงสามารถใช้งานได้ทั้งแบบอักขระ และ จํานวนเต็ม

ใช้คําหลัก const

ใช้ตัวประมวลผลก่อน

ข้อความสั่งกําหนดค่า
(assignment statement)

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

นิพจน์
(expressions)

การแสดงผลและการรับค่า

รูปแบบการแสดงผล (format specifiers)

ลําดับหลีก (escape sequence)

ฟังก์ชัน printf()

printf (“สายอักขระควบคุม”, ตัวแปร);

image

ขึ้นต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%)

ตามด้วยอักขระ 1 ตัว หรือหลายตัว โดยที่อักขระนั้นมีความหมายดังนี้

image

ฟังก์ชัน scanf()

scanf(“%รูปแบบ”, &ตัวแปร);

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

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

มีรูปแบบคือ : ตัวแปร = นิพจน์;

การคํานวณทางคณิตศาสตร์

image

ตัวดําเนินการเอกภาค (unary operator)

ตัวดําเนินการเอกภาคเติมหลัง (postfix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร

ตัวดําเนินการเอกภาคเติมหน้า (prefix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร

ตัวดําเนินการประกอบ
(compound operator)

image

การแปลงชนิดข้อมูล (type cast)

รูปแบบ : ตัวแปร = (ชนิดข้อมูล) นิพจน์;

การกําหนดค่าจากข้อมูลหลายชนิด
(assignment with mixed types)

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

ถ้าตัวแปร หรือ ตัวคงที่ มีชนิดข้อมูลที่ต่างกัน จะต้องแปลงให้เป็นชนิดเดียวกันก่อน แล้วจึงดําเนินการ โดยในการแปลงจะต้องแปลงชนิดข้อมูลที่มีขนาดเล็กกว่าให้เป็นชนิดข้อมูลที่มีขนาดใหญ่กว่า

ดังนั้น ถ้าตัวแปร หรือ ตัวคงที่ ตัวหนึ่งเป็นชนิดจํานวนเต็ม (int)

ส่วนอีกตัวหนึ่งเป็นชนิดจํานวนจริง(float) จะต้องแปลงตัวแปรหรือตัวคงที่ที่เป็นจํานวนเต็ม (int) ให้เป็นจํานวนจริง (float) ก่อน แล้วจึงดำเนินการ