ตัวแปรในภาษา C แบ่งออกเป็นกี่ประเภท
ตัวแปรในภาษา C มีประเภททั้งหมดกี่ชนิด?
เอ่อ...เท่าที่จำได้นะ ตอนเรียนเขียนโปรแกรม C เมื่อนานมาแล้ว น่าจะปี 2548 มั้ง ที่คณะวิศวะฯ แถวลาดกระบัง (จำชื่อตึกไม่ได้แล้ว) อาจารย์บอกว่าตัวแปรหลักๆ ก็มี 4 แบบนะ
- ตัวอักษร (char) อันนี้ชัดเจน ใช้เก็บตัวหนังสือ ตัวเดียวโดดๆ 'A' 'b' อะไรแบบนี้
- จำนวนเต็ม (int) พวกเลขไม่มีจุดทศนิยม เช่น 1, 2, -100
- ทศนิยม (float, double) อันนี้เอาไว้เก็บเลขที่มีจุดทศนิยมไง เช่น 3.14, -2.71828
- ค่าความจริง (bool) อันนี้มีแค่ true กับ false เอาไว้เช็คเงื่อนไขต่างๆ
แต่ว่า...มันก็จะมีพวก int short long อะไรที่มันต่างกันตรงขนาดพื้นที่ที่ใช้เก็บข้อมูล ทำให้เก็บเลขได้เยอะน้อยไม่เท่ากันอีกทีนะ แล้วก็ float กับ double ก็คล้ายๆกัน แค่ double มันละเอียดกว่า (มั้งนะ จำไม่ค่อยได้แล้ว)
จริงๆตอนนั้นสับสนเรื่อง pointer มากกว่า ว่าทำไมต้องมี * กับ & ด้วย ปวดหัวเลย
ตัวแปรในภาษาซีมีกี่ประเภท อะไรบ้าง
อืม... กี่ประเภทเนี่ยนะ ตอนเรียนนี่... จำได้คลุมเครือๆ แต่เท่าที่นึกออกนะ หลักๆ ก็ประมาณสี่ ห้าชนิดมั้ง... ไม่แน่ใจจริงๆ สมองมันล้าๆ ไปหมดแล้ว คืนนี้
ตัวอักษร นี่ง่ายสุด เก็บแค่ตัวอักษรเดียว A, B, C อะไรแบบนั้น
จำนวนเต็ม จำได้ว่ามีหลายแบบ int , short , long อะไรพวกนี้ แต่ขนาดก็ไม่ค่อยมั่นใจ ว่ามันต่างกันยังไง ตอนนั้นงงๆ
ทศนิยม float กับ double นี่แหละ จำได้ว่า double แม่นกว่า เก็บได้ละเอียดกว่า แต่ก็กินพื้นที่เยอะกว่า
บูลีน อันนี้ง่าย แค่ true หรือ false เท่านั้นเอง ง่ายๆ สบายๆ
แล้วก็มีอีกไหมนะ... เฮ้อ สมองมันตื้อๆ นึกไม่ออกแล้ว ไม่รู้จะนึกยังไงต่อ ปีนี้ก็ทำงานหนัก เหนื่อยจัง
- จริงๆ แล้วมันอาจมีมากกว่านี้ เพราะบางทีมันก็ขึ้นกับ compiler หรือระบบปฏิบัติการที่ใช้ด้วย แต่เท่าที่จำได้ตอนเรียน... ก็ประมาณนี้แหละ
ชนิดข้อมูลหลักๆ ในภาษา C มีอะไรบ้าง (ยกมา 3 อย่าง)
โอ้โห! คำถามนี้เบสิคมากกกกกกก เหมือนถามเด็ก ป.4 เลยนะเนี่ย! แต่ก็ได้ๆ จะตอบให้แบบ "ขำๆ เสียดสีนิดๆ" ตามที่ขอ เตรียมตัวเฮฮากันได้เลย!
int: นี่คือราชาแห่งตัวเลข! มันคือจำนวนเต็ม ไม่มีเศษ ไม่มีทศนิยม ถ้าคุณคิดเลขแล้วได้ 3.14 int มันจะมองเห็นแค่ 3 เหลือทิ้งหมด! เปรียบเหมือนแฟนที่ไม่สนใจความรู้สึกละเอียดอ่อนของคุณเลย เอาแต่สิ่งที่เห็นเป็นหลัก โหดร้ายใช่ไหมล่ะ!
float: นี่แหละนางเอก! เจ้าแม่แห่งทศนิยม! เก็บเลขได้ละเอียดกว่า int เยอะ แต่ความละเอียดก็มีขีดจำกัดนะจ๊ะ มันเหมือนกับคนสวยที่ดูดี แต่ก็มีข้อเสียอยู่บ้าง ความแม่นยำไม่ถึงขั้นเทพ แต่ก็สวยงามพอใช้ได้
char: ตัวน้อยแต่แกร่ง! เก็บได้แค่ตัวอักษรตัวเดียว! คิดซะว่ามันเป็นนักมายากลตัวจิ๋วที่เก็บความลับได้อย่างน่าทึ่ง แต่เก็บได้แค่ความลับเดียวเท่านั้น ถ้าอยากเก็บเยอะ ต้องใช้หลายๆ ตัว!
บอกเลยว่า 3 ตัวนี้โคตรสำคัญ! ถ้าไม่มีพวกมัน โปรแกรมของคุณก็คงจะเงียบกริบ เหมือนงานศพเลยล่ะ!
เพิ่มเติมนิดหน่อย (เผื่ออยากรู้ลึกกว่านี้)
- ปีนี้ยังคงใช้ int, float, char เป็นหลัก ไม่เห็นมีอะไรเปลี่ยนแปลงเลย เหมือนกฎหมายบ้านเรา แก้ๆๆ แล้วก็แก้ๆๆ แต่ก็ไม่ค่อยเปลี่ยนแปลงอะไรซักเท่าไหร่
- ความจริงมีชนิดข้อมูลอื่นอีกเยอะแยะมากมาย แต่ 3 ตัวนี้เป็นตัวหลัก เหมือนดารานำในหนังเรื่องหนึ่งนั่นแหละ!
ตัวแปรประเภท Integer(INT) ใช้เก็บค่าอะไร
อ้าว! คิดว่า Integer เก็บแต่เลขสวยๆ อย่าง 1, 2, 3 เหรอ? คิดผิดแล้วเพื่อน! มันเก็บเลขได้สารพัดแบบ! ตั้งแต่เลขบวกปิ๊งๆ อย่างยอดไลค์ในเฟสบุ๊คของผมเมื่อวาน (เยอะมากจนไม่อยากบอก!) จนถึงเลขลบติดลบแบบยอดเงินในบัญชีหลังจากช้อปปิ้งออนไลน์เสร็จ (น้อยจนอยากร้องไห้!) รวมถึงศูนย์อันแสนเหงาด้วยนะ! ล้อเล่นๆ มันคือเลขจำนวนเต็มนั่นแหละ ไม่ต้องมีทศนิยมมาเกะกะให้ปวดหัว!
มันคืออะไร? เลขจำนวนเต็ม! บวก ลบ ศูนย์ ครบสูตร! เหมือนขนมครกที่ไม่มีไส้ แต่ก็อร่อยไปอีกแบบ (อย่าถามว่าทำไมเปรียบเทียบแบบนี้ ผมก็ไม่รู้เหมือนกัน!)
ซีแบ่งยังไง? โอ้โห ละเอียดอ่อนซะเหลือเกิน! ภาษาซีมันแบ่งประเภท Integer ยิบย่อยอีก อย่าง
short,int, ฯลฯ แต่รายละเอียดปลีกย่อยนั้น... ขออภัย ผมเป็นโปรแกรมเมอร์ที่เน้นความเข้าใจง่าย มากกว่าความแม่นยำในการจำรายละเอียดจิปาถะนะครับ (แหม! แก้ตัวเก่งเนอะ!)
ปีนี้ (2566) ยังคงใช้ Integer ในการเก็บข้อมูลแบบเดิมแหละครับ ไม่เห็นมีอะไรเปลี่ยนแปลงเลย เสถียรมาก! เหมือนความรู้สึกผมที่มีต่อกาแฟเย็นในตอนบ่ายๆ (อร่อยและไม่เปลี่ยนแปลง!)
ตัวดําเนินการในภาษา C มีกี่ประเภท?
โอเค มาลองดูดิ๊ ภาษา C มีตัวดำเนินการกี่แบบนะ...
คณิตศาสตร์: บวก ลบ คูณ หาร มอดุโล (หารเอาเศษ) พวก + - * / % ไรงี้ป่ะวะ?
เปรียบเทียบ: มากกว่า น้อยกว่า เท่ากับ ไม่เท่ากับ พวก >
ตรรกะ: และ หรือ ไม่ พวก && || ! อ่ะ คิดว่านะ
กำหนดค่า: = += -= *= /= %= >>=
ระดับบิต: & | ^ ~ > เออใช่ มีพวกนี้ด้วย
อื่นๆ: พวก sizeof ternary operator (?:) comma operator (.) member access operator (->)
สรุปคือ... มันเยอะกว่าที่คิดนะเนี่ย แต่หลักๆก็ คณิต เปรียบเทียบ ตรรกะ กำหนดค่า ระดับบิต แล้วก็อื่นๆ จุกจิกๆ เออ... แต่ที่จริงก็มี increment/decrement operator ด้วยนะ (++ --) นับเป็นอะไรดีวะ? ค่อยไปหาเพิ่มทีหลังก็ได้มั้ง เพิ่มเติม: ลืมไปเลย มีตัวดำเนินการชี้ตำแหน่งด้วย (&*), arrow operator (->) ด้วยอีก! ตายๆ เยอะเกิน
โครงสร้างของภาษาซี (C) เบื้องต้น มีอะไรบ้าง?
โครงสร้าง C เหรอ? หึ...
- Preprocessor: #include สำคัญสัสๆ
- Global: ประกาศตัวแปรนอก function...ระวังเหอะ
- Main: int main() { ... } จุดเริ่มต้น...อย่าทำพัง
- Function: สร้างเองใช้เอง...อย่าก็อปชาวบ้าน
- Comments: // หรือ / ... / เขียนให้คนอื่นอ่านรู้เรื่อง...ถ้าอยาก
เพิ่มเติม:
- #define: กำหนดค่าคงที่...อย่ามั่ว
- Struct: สร้าง data type เอง...ซับซ้อนดี
- Pointer: * และ & ...ถ้าไม่เข้าใจ...จบเห่
- Header Files: .h ...รวม function ไว้ให้เรียกใช้
- Library: พวก stdio.h, math.h ...เรียนรู้ไว้
ทำไมต้องเรียนภาษา C?
เอาล่ะ! ทำไมต้องเรียน C? เพราะมันโคตรเท่! ไม่ใช่เท่แบบไอดอลเกาหลีนะ แต่เท่แบบสายลับ! ลับๆ ล่อๆ เข้าถึงแก่นแท้ของคอมพิวเตอร์ได้เลย เหมือนมีพลังพิเศษควบคุมเครื่องจักรกล!
พกพาสะดวก: โค้ดเขียนทีเดียวใช้ได้ทั่ว! ไม่ง้อใคร! เหมือนมีกระเป๋าใบเดียวใส่ของได้ทุกอย่าง ไปเที่ยวไหนก็สบายใจ ไม่ต้องแบกกระเป๋าหลายใบให้เมื่อย! นี่แหละความสามารถในการพกพาสูง! (ข้อมูล ณ ปี 2024)
ใกล้ชิดฮาร์ดแวร์: ภาษา C เนี่ย มันสนิทกับฮาร์ดแวร์มากกก เหมือนเป็นเพื่อนซี้กันเลย เข้าใจกันถึงขั้น DNA จะปรับแต่งอะไรก็ทำได้ ไม่ต้องผ่านคนกลางให้เสียเวลา! เขียนโปรแกรมควบคุมอะไรก็ได้ แบบว่า...สุดยอด! (ข้อมูล ณ ปี 2024)
พื้นฐานที่แข็งแกร่ง: เรียน C แล้วไปเรียนภาษาอื่นง่ายขึ้น! เหมือนมีพื้นฐานวิทยายุทธแน่นปึ้ก ไปเรียนวิชาต่อยอดอื่นๆ ก็ไม่ยาก! นี่แหละประโยชน์ที่ได้จากการเรียนรู้ภาษา C! (ข้อมูล ณ ปี 2024)
ตำนานแห่งความเร็ว: เร็วแรงทะลุปรอท! ไม่ใช่แค่เร็วธรรมดา แต่เร็วแบบแสง! (ความเร็วจริงๆ ขึ้นอยู่กับการเขียนโปรแกรมด้วยนะ อย่าเข้าใจผิด!)
สรุปง่ายๆ คือ เรียน C แล้ว จะได้ความรู้ความสามารถที่ล้ำเลิศ เหมือนได้วิชาตัวเบา! ไม่ใช่แค่เขียนโปรแกรมได้ แต่ได้ความเข้าใจเชิงลึกของระบบคอมพิวเตอร์อีกด้วย! มันสุดยอดจริงๆนะขอบอก!
ความคิดเห็นต่อคำตอบ:
ขอบคุณสำหรับความคิดเห็นของคุณ! ความคิดเห็นของคุณมีความสำคัญมากในการช่วยเราปรับปรุงคำตอบในอนาคต