สวัสดีครับ ในบทที่แล้ว คุณคงจะเข้าใจภาพรวมของ หน่วยความจำ (Memory) และ ตัวแปร (Variables) และ ข้อมูล (Data) กันมาแล้ว ว่ามันสัมพันธ์และมองภาพยังไง ในบทนี้ยังมีทฤษฏีเกี่ยวข้องเพิ่มเติมเข้ามาอีกครับ ทั้ง ชนิดข้อมูล (Data Type) และ Ascii Table และ Address แล้วยังแอบมีเรื่อง เลขฐาน 2 และ เลขฐาน 16 ด้วยนะ ! ใครพื้นฐานไม่แน่น ต้องรีบปรับพื้นฐานแล้วล่ะ !
ตัวแปร (Variables) กับ ชนิดข้อมูล (Data Type) เกี่ยวกันยังไงกับ หน่วยความจำ (Memory) ?
เมื่อคุณทำการ ประกาศตัวแปร (Variable Declarations) แน่นอนว่าในภาษา C นั้นคุณต้องทำการกำหนด ชนิดข้อมูล (Data Type) เสมอ ซึ่งการกำหนด ชนิดข้อมูล (Data Type) นั้นเป็นการบอกให้เรารู้ว่า ตัวแปร (Variables) นั้นสามารถเก็บข้อมูลชนิดไหนลงในนั้นได้ แล้วเมื่อใช้ ชนิดข้อมูล (Data Type) ในการกำหนดตัวแปรแล้ว แน่นอนว่าผลที่ตามมาคือ ชนิดข้อมูลแต่ละประเภท มีขนาดการใช้เนื้อที่ใน หน่วยความจำ (Memory) ไม่เท่ากัน ตามตาราง
สรุป ตัวแปร (Variables) ที่ถูกสร้างขึ้นใน หน่วยความจำ (Memory) จะมีขนาดตาม ชนิดข้อมูล (Data Type) ที่กำหนด โดยขนาดมีหน่วยเป็น Byte
Ascii Table รู้จักกันรึยัง ?
จะบอกว่าไงดี... เวลาคุณพิมพ์เลข 1 หรือ 2.0 หรือ ตัวอักษร C ลงในคอม อย่างที่เราสอนไปเมื่อกี้ 1 และ 2.0 และ C เป็นข้อมูลที่ต้องเก็บใน ตัวแปร (Variables) และ มันก็ถูกเก็บใน หน่วยความจำ (Memory) อีกทีถูกต้องไหม ? คราวนี้ที่อยากจะบอกก็คือ 1 และ 2.0 และ C ไม่ได้เก็บอยู่ในภาพเป็นตัวอักษรที่มนุษย์ทั่วไปเข้าใจ แต่มันถูกแปลงให้อยู่รูปของเลขฐาน 2 ! ที่มีแต่ 01010101 นั่นแหละ ! แล้วตัวอักษรทุกตัวที่คุณพิมพ์มันแปลงได้หมดถูกไหม ดังนั้น Ascii Table มันคือ ตารางที่สรุปให้เรารู้ว่า 1 และ 2.0 และ C เมื่ออยู่ในรูปเลขฐานต่างๆ แล้ว มันจะหน้าตาแบบไหนนั่นเอง ! ซึ่งมันเกี่ยวพันทั้ง เลขฐาน 10 (Decimal Number) เลขฐาน 2 (Binary Number) และ เลขฐาน 16 (Hexadecimal)
สรุป Ascii Table คือตารางของตัวอักษร (Characters) ต่างๆ ที่เมื่อจัดเก็บของในหน่วยความจำ (Memory) แล้ว จะถูกแปลงเป็นเลขฐานต่างๆ ในรูปแบบไหน
Address กับการเก็บข้อมูลของตัวแปร (Variables) ใน หน่วยความจำ (Memory)
ในแต่ละช่องของ หน่วยความจำ (Memory) จะถูกระบุด้วยสิ่งที่เรียกว่า Address ซึ่งเหมือนหมายเลขที่เอาไว้ระบุตำแหน่งบนหน่วยความจำ (Memory) ว่าช่องนี้อยู่ตำแหน่งที่เท่าไร (เหมือนเลขที่บ้านแต่ละหลัง) โดย Address นั้นมักจะแทนด้วยเลขฐาน 16
สรุป Address คือ ที่อยู่ของ ช่อง (Cell) ของหน่วยความจำ (Memory) แต่ละช่อง ซึ่ง Pointer มันเริ่มจากตรงนี้แหละ !
เรียบร้อยครับในบทนี้ ! เราคงเห็นภาพรวมการทำงานร่วมกันทั้ง หน่วยความจำ (Memory) และ ตัวแปร (Variables) และ ชนิดข้อมูล (Data Type) และ Ascii Table และ Memory Address ในบทต่อไป เราจะทำทฤษฏีเหล่านี้มาลองเขียน Code ภาษา C เพื่อศึกษาการทำงานกันครับ ! ใครสงสัยตรงไหน สามารถสอบถามได้ใน Page https://www.facebook.com/tutortongpage ได้เลยครับ
ส่วนถ้าใครสนใจเรียนเขียนโปรแกรม ภาษา C , C++ , Python หรืออื่นๆ ทั้งแบบออนไลน์คลิป และ ออนไลน์สด จะเรียนพื้นฐาน หรือ ติวสอบ สามารถสอบถามเข้ามาใน Page ได้เช่นกันครับ
เขียนโปรแกรม ไม่ยาก ถ้าเข้าใจหลักการทำงาน !