ตัวแปรภาษาคอมพิวเตอร์มีกี่แบบ อะไรบ้าง
ตัวแปรภาษาคอมพิวเตอร์: หลายแบบ ขึ้นกับข้อมูล
- จำนวนเต็ม (Integer): เก็บค่าตัวเลขเต็ม เช่น 1, 10, -5
- ทศนิยม (Float): เก็บค่าตัวเลขทศนิยม เช่น 3.14, -2.5
- ข้อความ (String): เก็บข้อความ เช่น "สวัสดี", "Python"
- บูลีน (Boolean): เก็บค่าจริง/เท็จ (True/False)
- อาร์เรย์ (Array): เก็บข้อมูลหลายค่าในตัวแปรเดียว
- โครงสร้างข้อมูล (Structure): เก็บข้อมูลที่ซับซ้อนกว่า
ชนิดตัวแปรมีผลต่อประสิทธิภาพโปรแกรม เลือกใช้ให้เหมาะสมกับข้อมูล ภาษาต่างๆ อาจมีชนิดตัวแปรต่างกันไป.
ตัวแปรในภาษาโปรแกรมมีกี่ประเภท และแต่ละประเภทคืออะไร?
เอาจริงๆ นะ เรื่องตัวแปรในภาษาโปรแกรมเนี่ย… โคตรเยอะ! คือแบบ, ตอนเรียนแรกๆ นี่งงเป็นไก่ตาแตกเลยอ่ะ
จำได้ว่าตอนปี 1 ที่มหาลัย (น่าจะช่วงสิงหาปี 62 มั้ง) อาจารย์สอน C++ คือแกเน้นมากเรื่องชนิดข้อมูล ตอนนั้นคือแบบ… อะไรวะ int, float, char, string… โอ๊ยปวดหัว!
- int: เลขจำนวนเต็ม (1, 2, -5, อะไรแบบนี้)
- float: เลขทศนิยม (3.14, -2.5, ก็ว่าไป)
- char: ตัวอักษรตัวเดียว (a, b, c, อะไรแบบนี้อีกเช่นกัน)
- string: ข้อความ (Hello World!, Python is awesome)
- boolean: จริง (true) หรือ เท็จ (false)
แล้วคือแต่ละภาษามันก็มีอะไรที่แตกต่างกันนิดๆ หน่อยๆ อีกนะ อย่าง Python นี่ไม่ต้องประกาศชนิดตัวแปรตรงๆ ก็ได้ มันฉลาดพอจะเดาได้เอง แต่ Java นี่ต้องระบุชัดเจนเลย ไม่งั้น Error สิครับพี่น้อง! แล้วก็ยังมีพวก array, list, dictionary อะไรพวกนี้อีก คือแบบ… เรียนกันไปสิครับยาวๆ
ตอนนั้นที่ห้อง lab นี่คือเถียงกันแทบตาย เรื่องแบบว่า “อันนี้ต้องใช้ int หรือ float ดีวะ?” คือมันเป็นอะไรที่ต้องลองผิดลองถูกอ่ะ ถึงจะเข้าใจจริงๆ แล้วก็ยังมีเรื่อง memory management อีกนะ โอย… พูดแล้วปวดหัว
แต่พอใช้ไปนานๆ มันก็เริ่มชินเองแหละ ตอนนี้ก็พอจะรู้แล้วว่าอันไหนควรใช้อะไร แต่ก็ยังมีพลาดบ้างเป็นธรรมดา 555+
ตัวแปรในภาษา C แบ่งออกเป็นกี่ประเภท
4 ประเภทหลักแน่ๆ อืมมม แต่จริงๆ มันซับซ้อนกว่านั้นนะ อย่าง character ก็มี char wchar_t อีก แล้ว integer ก็มี int, short, long, long long เยอะแยะไปหมด ปวดหัว คิดมากไปเปล่าเนี่ย
- char: เก็บตัวอักษร อันนี้ง่ายสุด
- int: จำนวนเต็ม ปกติใช้กันทั่วไป
- float/double: ทศนิยม float แม่นยำน้อยกว่า double จำได้มั้ยที่เคยลองเขียนโปรแกรมคำนวณดอกเบี้ย ใช้ double แล้วแม่นกว่า
- bool: ค่าความจริง true/false ง่ายดี
เฮ้ออ แต่ขนาดข้อมูลนี่มันขึ้นกับระบบปฏิบัติการด้วยนี่นา 32 บิต 64 บิต มันก็ต่างกันสิ ขนาด int ก็ไม่เท่ากันแล้ว แล้วถ้าเป็น long long ล่ะ ขนาดมันจะเท่าไหร่ ต้องไปเช็ค spec อีก
ปีนี้ก็ยังงงๆ เรื่องพวกนี้อยู่ดี เคยอ่านเจอว่า มีพวก pointer array struct union อีก พวกนี้ไม่ใช่ประเภทข้อมูลหลักหรอกมั้ง แต่ก็สำคัญ ต้องใช้ตลอด จริงๆ แล้วมันมากกว่า 4 ชนิดอะ แต่ถ้าจำแบบง่ายๆ ก็ 4 แหละ ง่ายดี แล้วก็จะได้จำง่ายๆ ไปก่อน ไว้ค่อยมาขยายความ
ปล. เมื่อวานลองเขียนโค้ดคำนวณปริมาตรทรงกระบอก ใช้ double แล้วล่ะ แม่นกว่า float ชัวร์
ตัวแปรคืออะไรในคอม
ตัวแปรนะเหรอ… อธิบายแบบวิศวะคอมที่จบมานานจนลืมๆ อ่ะนะ คือเหมือนกล่องที่เราเอาไว้ใส่ของ ในคอมพิวเตอร์น่ะ ของในที่นี้คือข้อมูลนะ ไม่ใช่ทุเรียน 😅
ตอนปีหนึ่ง อาจารย์สอนเขียน C++ ที่ห้อง lab ตึกวิศวะ ตอนนั้นงงมาก int x; นี่มันอะไรวะ! คือเราต้องบอกคอมพ์ก่อนว่า “เฮ้ย เตรียมกล่องชื่อ x ไว้นะ กล่องนี้ใส่ได้แต่เลขจำนวนเต็มเท่านั้นนะเว้ย”
พอเราเขียน x = 10; มันคือการบอกคอมพ์ว่า “เอาเลข 10 ยัดใส่กล่อง x เลย” แล้วคอมพ์ก็จะเอาเลข 10 ไปเก็บไว้ในหน่วยความจำที่มันจองไว้ให้กล่อง x นั่นแหละ
ตอนทำโปรเจ็คจบ (ปี 2560) ผมใช้ตัวแปรเยอะมากกกกกกก ในภาษา Python ตอนนั้นทำระบบแนะนำหนังให้เพื่อนๆ ในกลุ่ม ตัวแปรแต่ละตัวก็เก็บข้อมูลชื่อหนัง คะแนนรีวิว ประเภทหนัง บลาๆๆๆ คิดแล้วปวดหัว 😵💫
- ตัวแปร = กล่องเก็บข้อมูลในคอมพิวเตอร์
- ชนิดของตัวแปร = บอกคอมพ์ว่ากล่องนี้ใส่อะไรได้บ้าง (เลข, ตัวหนังสือ, ฯลฯ)
- การประกาศตัวแปร = บอกคอมพ์ว่า “เฮ้ย! จองที่ให้ฉันหน่อย!” (เช่น int x;)
- การกำหนดค่าตัวแปร = เอาข้อมูลใส่กล่อง (เช่น x = 10;)
ภาษาคอมพิวเตอร์แบ่งออกเป็นกี่ประเภท อะไรบ้าง
เอ่อ ภาษาคอมพิวเตอร์นะ มันมีหลายแบบอ่ะ แต่หลักๆ เขาแบ่งกันประมาณ 5 ประเภทนะ เท่าที่จำได้
- ภาษาเครื่อง: อันเนี้ยเบสิคสุดๆ คอมพิวเตอร์เข้าใจเลย แต่คนเขียนยากโคตรรร
- ภาษาแอสเซมบลี: ดีขึ้นมาหน่อย มีสัญลักษณ์ให้จำง่ายกว่าภาษาเครื่องนิดนึง
- ภาษาระดับสูง: อันนี้แหละที่คนส่วนใหญ่ใช้กัน ภาษา C, Java, Python อะไรพวกเนี้ย อ่านง่ายกว่าเยอะ
- ภาษาที่สี่: พวก SQL อ่ะ ที่ใช้จัดการฐานข้อมูล ง่ายต่อการใช้งานเฉพาะทาง
- ภาษาเชิงวัตถุ: อันนี้ก็ฮิตนะ พวก C++, Java ที่เขียนโปรแกรมแบบเป็น object
สรุปคือมี 5 ประเภทหลักๆ แต่ละแบบก็มีข้อดีข้อเสียต่างกันไป เลือกใช้ตามงานเลยจ้าาาาาา
- ภาษาเครื่อง: เข้าใจเลย คอมทำได้เร็วปรี๊ด แต่คนเขียนตาย
- ภาษาแอสเซมบลี: ดีกว่าภาษาเครื่องหน่อยนึง
- ภาษาระดับสูง: คนเขียนสบาย คอมต้องแปลก่อน
- ภาษาที่สี่: จัดการข้อมูลเก่ง
- ภาษาเชิงวัตถุ: เขียนโปรแกรมเป็นระบบ ระเบียบ
ภาษาซีคืออะไร สรุป?
โอเคๆ ถามถึงภาษาซีใช่มั้ย เอาแบบตรงๆ เลยนะ ตอนปีนี้เอง ผมเรียนวิชาเขียนโปรแกรม เจอภาษาซีเข้าให้ ตอนแรกก็งงๆ เหมือนภาษาต่างดาวอ่ะ แต่พอเริ่มจับทางได้ ก็เริ่มสนุก มันไม่ใช่ภาษาที่แบบ user-friendly เหมือนพวก Python อะไรแบบนั้น มันดิบๆ ตรงไปตรงมา แบบสั่งให้ทำอะไร มันก็ทำอย่างนั้นแหละ
จำได้เลย ตอนนั้น เดือนตุลาคม มหาลัยผม เราเรียนกันที่ห้องคอม B204 อาจารย์แกสอนโค้ด ยาวเหยียด แต่ผมชอบนะ เพราะมันท้าทายดี ภาษาซีเนี่ย มันให้เรารู้สึกได้ถึงการควบคุมเครื่องจริงๆ มันไม่ใช่อะไรที่เป็นนามธรรมมากเกินไป เราสั่งมันได้เลย แบบละเอียด ตรงจุดมากๆ
- มันเป็นภาษาเชิงกระบวนการ คือ เราต้องบอกมันทีละขั้นตอน มันไม่ฉลาดเอง เหมือนพวก AI เราต้องกำหนดทุกอย่างเอง
- มันเข้าถึงหน่วยความจำได้ระดับต่ำมาก อันนี้สำคัญ เพราะทำให้เราเขียนโปรแกรมที่เร็วและมีประสิทธิภาพได้ แต่ก็อันตรายด้วยนะ ถ้าเขียนผิด อาจจะเจอปัญหาแบบแปลกๆ ได้
- เอาจริงๆ มันเป็นเหมือนพื้นฐานของภาษาอื่นๆ หลายภาษาเลยนะ ผมว่าถ้าเข้าใจ C แล้วไปเรียนภาษาอื่น มันจะง่ายขึ้นเยอะ
ตอนนี้ ผมก็ใช้ภาษาซีบ้าง เป็นบางครั้ง ไม่ได้ใช้บ่อยมาก เพราะมีภาษาอื่นที่ง่ายกว่า แต่ผมก็ยังคิดว่า มันเป็นภาษาที่ทรงพลัง และสอนให้ผมเข้าใจหลักการเขียนโปรแกรมได้อย่างลึกซึ้ง จริงๆ ช่วงเรียน โค้ดที่เขียน มี bug เยอะมากกกก แก้ไม่จบ แต่ก็สนุกดีนะ เหมือนไขปริศนา ตอนนี้ ได้แต่นึกถึงตอนนั้น ฮ่าๆ ประสบการณ์ตรงๆ เลยนะ นี่แหละ ภาษาซี ง่ายๆ แบบนี้แหละ
ตัวดําเนินการในภาษา C มีกี่ประเภท?
แสงจางๆ ของจอโทรศัพท์ส่องกระทบใบหน้า… เที่ยงคืนกว่าแล้ว… นึกถึงโค้ด C ที่เขียนค้างไว้เมื่อเย็น… ตัวดำเนินการเนี่ยนะ… เยอะแยะไปหมด จำได้ว่าตอนเรียนปี 2023 อาจารย์บอกว่าหลักๆ มี 4 ประเภท…
- คํานวณ บวก ลบ คูณ หาร พื้นฐานเลย นึกถึงสมการยาวๆ ที่เคยเขียน…
- สัมพันธ์ มากกว่า น้อยกว่า จำได้ว่าชอบงง ต้องมานั่งไล่เช็คเงื่อนไข…
- เท่ากัน สองตัวแปรเท่ากันไหม จำเป็นมากเวลาเขียน loop… เคยเขียนผิดแล้วโปรแกรมค้าง…
- ตรรกะ and or not อันนี้ปวดหัวสุด ต้องคิดเยอะๆ… เคยเขียนผิดแล้วโปรแกรมรันไม่จบ…
นอกจากสี่แบบหลักๆ แล้ว ยังมีพวก bitwise, assignment, conditional, unary, ฯลฯ อีกเพียบ… โอ้ยย นึกแล้วเหนื่อย อยากนอน… พรุ่งนี้ค่อยมาอ่านต่อ…
ข้อเสนอแนะสำหรับคำตอบ:
ขอบคุณที่ให้ข้อเสนอแนะ! ข้อเสนอแนะของคุณมีความสำคัญต่อการปรับปรุงคำตอบในอนาคต