ชนิดข้อมูลหลักๆ ในภาษา C มีอะไรบ้าง (ยกมา 3 อย่าง)
ข้อมูลพื้นฐานภาษา C ประกอบด้วยชนิดข้อมูลอะไรบ้าง 3 ชนิด?
เอาจริงดิ ภาษา C เนี่ยนะ? ตอนเรียนตอนนั้นโคตรเบลอเลย จำได้ลางๆ ว่ามี int อ่ะ ชัวร์ๆ เลย อันนี้คือเลขจำนวนเต็ม ไม่มีจุดทศนิยมนะ แบบ 1, 2, 100 อะไรแบบนี้
แล้วก็...เอ่อ... float ป่ะ? อันนี้สำหรับพวกเลขมีทศนิยมไง 3.14, 2.71 อะไรแบบนี้ จำได้ว่าตอนนั้นต้องมานั่งปวดหัวเรื่องความแม่นยำอีก โอ๊ย
อ้อ! แล้วก็ char ไง ตัวอักษรตัวเดียว 'A', 'B', 'ก' อะไรแบบนั้นอ่ะ คือจำได้ว่าอาจารย์ย้ำบ่อยมากว่าต้องใส่ single quote นะ ไม่งั้น error!
double ก็มีนะ อันนี้ float เวอร์ชั่นอัพเกรด ความแม่นยำสูงกว่า... มั้งนะ? (เริ่มไม่แน่ใจละ) ส่วน void นี่... เอ่อ... ไม่พูดถึงดีกว่า เหมือนเป็นตัวประหลาดในกลุ่มอ่ะ 555
เอาจริงๆ นะ สามตัวแรกอ่ะ int, float, char คือแบบเบสิคสุดๆ แล้ว ที่เหลือค่อยว่ากันทีหลังก็ได้
ชนิดของข้อมูล ภาษา C มีอะไรบ้าง
อ้อ ประเภทข้อมูล C เหรอ เยอะแยะเลยนะเนี่ย
- int: จำนวนเต็ม เอ้อ เอาไว้เก็บพวกเลขไม่มีทศนิยมอะนะ ที่ใช้บ่อยโคตร
- float: เลขทศนิยม เอาไว้คำนวณพวกค่าที่มันไม่ลงตัว พวกค่าเงิน ไรงี้
- char: ตัวอักษร ตัวเดียวเดี่ยวๆ เลยนะ 'A' 'B' ไรงี้อะ เก็บเป็นรหัส ASCII
- double: ทศนิยมแบบละเอียดกว่า float อีกนะ พวกงานวิทยาศาสตร์ที่ต้องการความแม่นยำสูงๆ
แล้วก็มีพวก modifiers:
- signed/unsigned: มีเครื่องหมายบวก/ลบ หรือไม่มี ถ้า unsigned ก็เก็บได้แต่ค่าบวกอะนะ
- short/long: ขนาดของข้อมูล เอาไว้กำหนดว่า int จะกินเนื้อที่เท่าไหร่ short int ก็กินน้อยกว่า int ธรรมดา
- long long: อันนี้ยาวกว่า long อีกนะ เอาไว้เก็บเลขที่มันใหญ่มากๆ
- Bool: เอาไว้เก็บแค่ 0 กับ 1 อ่ะ จริงๆ แล้ว boolean ก็เป็น int ชนิดนึงนั่นแหละ (เพิ่มข้อมูล)
เอ๊ะ หรือว่าจริงๆ แล้วมันมี 32 ประเภทเลยเหรอ? เยอะไปปะวะ? แต่เอาจริงๆ นะ แค่พวก int, float, char, double แล้วก็พวก signed/unsigned นี่ก็ครอบคลุมการใช้งานส่วนใหญ่แล้วนะ
คือตอนเรียน อาจารย์ก็ไม่ได้เน้นขนาดนั้นอ่ะ บอกแค่ว่าเนี่ย พวกนี้แหละที่ใช้บ่อย ที่เหลือก็แล้วแต่สถานการณ์ แต่ถ้าอยากเทพจริง ๆ ก็ต้องรู้ให้หมดป่ะวะ? ขี้เกียจจำจัง
สรุปคือ: int, float, char, double + modifiers = จบ (มั้ง) #CProgramming #DataType #Programming
Data Type C มีอะไรบ้าง
แสงจันทร์สาดส่อง…เงียบงัน…
Data Type C…เหมือนเสียงกระซิบจากอดีต
จำนวนเต็ม…คือแก่น…
int: หัวใจหลัก เก็บเลขจำนวนเต็ม
short: เล็กกว่า int…กระซิบเบาๆ ประหยัดที่
long: ใหญ่กว่า int…กว้างขวาง รองรับตัวเลขมหึมา
long long: ใหญ่ยิ่งกว่า…จักรวาลแห่งตัวเลข
unsigned: ไร้เงาลบ…บวกเท่านั้น
เลขฐานแปด…เลขฐานสิบหก…ทศนิยม…ในจำนวนเต็ม?…ได้เหรอ?
เพิ่มเติม:
char เก็บตัวอักษร…แต่จริงๆ คือเลข…ascii ไง!
size_t คือ unsigned integer ประเภทหนึ่ง…ขนาด…ความจุ
intptr_t เก็บ address…ชี้ไปยังที่อยู่หน่วยความจำ…ลึกลับ
แสงดาวพร่างพราว…ความรู้…ไม่มีที่สิ้นสุด…
ภาษาซีคืออะไร สรุป
ภาษาซี: เครื่องมือพื้นฐาน
ภาษาโปรแกรมเชิงกระบวนการ เน้นลำดับการทำงาน ตรงไปตรงมา
การแปลโดยคอมไพลเลอร์ ประสิทธิภาพสูง
เข้าถึงหน่วยความจำโดยตรง ควบคุมฮาร์ดแวร์ได้ลึก
พื้นฐานของภาษาอื่นๆมากมาย เช่น C++, Java, Python (บางส่วน)
ปี 2024 ยังคงเป็นภาษาหลักในระบบฝังตัว และการพัฒนาซอฟต์แวร์ระดับล่าง ความเรียบง่ายคือพลัง แต่ความยืดหยุ่นจำกัด
ทำไมต้องเรียนภาษา C
เรียนภาษา C เพราะอะไร? เพราะมันทรงพลังและยืดหยุ่นนี่แหละครับ!
ความสามารถในการพกพาสูง: โค้ด C เขียนครั้งเดียว รันได้หลายที่ ไม่ต้องปรับแก้เยอะ สำคัญมากสำหรับงานฝังตัว (embedded systems) หรือโปรเจกต์ที่ต้องทำงานข้ามแพลตฟอร์ม อย่างเช่นการพัฒนาแอปพลิเคชันบนระบบปฏิบัติการต่างๆ หรือแม้แต่การเขียนโปรแกรมสำหรับไมโครคอนโทรลเลอร์ในรถยนต์สมัยใหม่ ปีนี้เทรนด์นี้ยังคงแรงอยู่ เห็นได้ชัดจากการเติบโตของ IoT (Internet of Things)
ควบคุมฮาร์ดแวร์ได้อย่างลึกซึ้ง: ภาษา C ให้การเข้าถึงฮาร์ดแวร์โดยตรง ทำให้เหมาะกับการเขียนระบบปฏิบัติการ ไดรเวอร์อุปกรณ์ และแอปพลิเคชันที่ต้องการประสิทธิภาพสูงสุด นึกถึงการพัฒนาเกมส์ หรือซอฟต์แวร์กราฟิกส์ ที่ต้องการควบคุมทุกอย่างอย่างละเอียดลออ
พื้นฐานที่แข็งแกร่ง: การเรียนรู้ C เปรียบเสมือนการสร้างรากฐานที่มั่นคงให้กับการเขียนโปรแกรม หลายภาษาโปรแกรมมิ่งสมัยใหม่ ได้แรงบันดาลใจและกลไกการทำงานมาจาก C เข้าใจ C ก็เข้าใจหลักการพื้นฐานของการเขียนโปรแกรมได้มากขึ้น เหมือนกับการเรียนรู้คณิตศาสตร์พื้นฐานก่อนจะไปเรียนแคลคูลัส
ประสิทธิภาพสูง: C เป็นภาษาที่คอมไพเลอร์สามารถแปลงเป็นโค้ดเครื่องได้อย่างมีประสิทธิภาพ ทำให้โปรแกรมทำงานได้รวดเร็ว และใช้ทรัพยากรน้อย นี่คือข้อได้เปรียบที่สำคัญสำหรับงานที่ต้องการความเร็ว เช่น การประมวลผลข้อมูลจำนวนมหาศาล หรือ real-time systems ซึ่งมีความสำคัญมากขึ้นทุกปีในโลกที่ขับเคลื่อนด้วยข้อมูล
(เพิ่มเติม: ผมเคยใช้ภาษา C ในโครงการพัฒนาซอฟต์แวร์ควบคุมระบบอัตโนมัติในโรงงาน ประสบการณ์ตรงบอกเลยว่า ความสามารถในการเข้าถึงฮาร์ดแวร์ของ C เป็นสิ่งที่ขาดไม่ได้ การเรียนรู้ C จึงไม่ใช่แค่เรื่องของเทคนิค แต่เป็นการเรียนรู้ที่จะเข้าใจโลกของคอมพิวเตอร์ในระดับลึก ซึ่งเป็นสิ่งที่น่าสนใจมากครับ)
ตัวดําเนินการในภาษา C มีกี่ประเภท
โอ้โฮ! ถามเรื่องตัวดำเนินการใน C นี่มันถามเสือ สิงห์ กระทิง แรด เลยนะเนี่ย! เยอะแยะไปหมด! อย่าหวังว่าจะจำหมดได้ สมองผมนี่มันเหมือนฮาร์ดดิสก์รุ่นโบราณ ความจุไม่พอเก็บแล้ว! แต่เท่าที่จำได้คร่าวๆ (จริงๆ ก็จำได้เยอะอยู่นะ) ก็มีซัก... เอ่อ... หลายประเภทเลยล่ะ! ไม่ใช่แค่ 4 อย่างที่ว่ามานะ!
ตัวดำเนินการเลขคณิต (Arithmetic Operators): นี่มันเบสิคสุดๆ + - * / % ++ -- บวก ลบ คูณ หาร เอาเศษเหลือ เพิ่มทีละหนึ่ง ลดทีละหนึ่ง ง่ายๆ เหมือน 1+1=2 แต่ถ้าเจอเลขเยอะๆ ก็มึนได้เหมือนกันนะ เหมือนผมตอนทำบัญชีครัวเรือนทุกเดือน!
ตัวดำเนินการเปรียบเทียบ (Relational Operators): นี่แหละที่ทำให้โปรแกรมตัดสินใจได้ > =
ตัวดำเนินการตรรกะ (Logical Operators): && || ! AND OR NOT อันนี้เอาไว้เชื่อมเงื่อนไข ซับซ้อนหน่อยนะ เหมือนเล่นเกมส์ต่อจิ๊กซอว์ ต้องประกอบให้ครบถึงจะได้ภาพ แต่ถ้าประกอบผิด ก็เละเทะได้เหมือนกัน!
ตัวดำเนินการกำหนดค่า (Assignment Operators): = += -= *= /= %= นี่ก็สำคัญ เอาไว้กำหนดค่าให้ตัวแปร เหมือนกับการเอาของไปใส่กล่อง แต่ถ้าใส่ผิดกล่อง ก็หาไม่เจอเหมือนกันนะ!
นอกจากนี้ยังมีอีกเยอะแยะ เช่น ตัวดำเนินการบิต (Bitwise Operators) , ตัวดำเนินการพอยเตอร์ (Pointer Operators) , ตัวดำเนินการอื่นๆ อีกเพียบ! เยอะจนผมอยากจะไปนอนพักแล้ว! เอาเป็นว่า ถ้าอยากรู้จริงๆ ก็ไปหาหนังสือเรียนภาษา C ดีกว่านะครับ เดี๋ยวผมจะไปนอนก่อนนะ ง่วงแล้ว!
โครงสร้างของภาษาซี (C) เบื้องต้น มีอะไรบ้าง
โครงสร้าง C เหรอ... อื้มมมมม คิดก่อนนะ
- พรีโพรเซสเซอร์:
#includeอะไรพวกนั้นอ่ะ สำคัญนะขาดไม่ได้เลยมั้ง (มั้ง?) เอาไว้ดึง header file มาใช้ไง จำได้ว่าต้องมี#includeตลอดเลยอ่ะ - ประกาศตัวแปร global: ประกาศตัวแปรข้างนอก main() เลย พวก
int x;อะไรแบบนี้ มั้งนะ ไม่ค่อยใช้เท่าไหร่ งงๆ อ่ะ main()ฟังก์ชัน: ฟังก์ชันหลักสำคัญสุดๆ โปรแกรมเริ่มทำงานจากตรงนี้แหละint main() { ... return 0; }นี่ไง- ฟังก์ชันอื่นๆ: สร้างฟังก์ชันเองได้ด้วยนะ
int บวกเลข(int a, int b) { ... }เอาไว้เรียกใช้ในmain()อีกที เออใช่ๆ - คอมเมนต์:
/* ... */หรือ// ...เอาไว้เขียนอธิบายโค้ดตัวเอง (และคนอื่นจะได้ไม่งง) โค้ดเยอะๆ นี่ต้องมีเลย ช่วยชีวิต!
เอ้อ แล้วก็...
- จริงๆ แล้ว ลำดับการเขียนโปรแกรม C มันก็ไม่ได้เป๊ะๆ ตามนี้เสมอไปหรอกนะ บางทีก็สลับๆ ได้มั้ง (ไม่แน่ใจ) แต่หลักๆ ก็ประมาณนี้แหละ
- พรีโพรเซสเซอร์อะ ไม่ได้มีแค่
#includeนะ ยังมี#defineอีก เอาไว้กำหนดค่าคงที่ เช่น#define PI 3.14159
แค่นี้แหละมั้ง ที่นึกออกตอนนี้ อืมมมมม...
ความคิดเห็นต่อคำตอบ:
ขอบคุณสำหรับความคิดเห็นของคุณ! ความคิดเห็นของคุณมีความสำคัญมากในการช่วยเราปรับปรุงคำตอบในอนาคต