Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C
การเขียนโปรแกรม C
  1. ทำไมจึงไม่สามารถประกาศตัวแปรใน switch statement ใน C/C++ ได้?

    จริงๆ แล้วประกาศตัวแปรใน switch statement ได้ แต่ต้องอยู่ในขอบเขตใหม่ (new scope) ภายใน case labelตัวอย่างที่ถูกต้อง#include <iostream> using namespace std; int main() { int i = 10; switch (i) { case 2: // some code break; case 10: {

  2. วิธีดูรายการไฟล์ในไดเรกทอรีด้วย C/C++

    C++ มาตรฐานไม่มีฟังก์ชันสำหรับนี้โดยตรง สามารถใช้คำสั่งระบบ (system command) เรียก ls แทนตัวอย่างใช้ system()#include <iostream> int main() { char command[50] = ls -l; system(command); return 0; }ผลลัพธ์ตัวอย่าง-rwxrwxrwx 1 root root 9728 Feb 25 20:51 a.out -rwxrwxrwx 1 root root

  3. วิธีดีบัก Core Dump ใน C/C++

    โปรเซสจะสร้าง Core Dump เมื่อถูกระบบปฏิบัติการยุติการทำงานเนื่องจากข้อผิดพลาดในโปรแกรม สาเหตุที่พบบ่อยที่สุดคือ โปรแกรมเข้าถึงค่าพอยน์เตอร์ที่ไม่ถูกต้อง เช่น NULL หรือที่อยู่หน่วยความจำนอกพื้นที่ที่จัดสรรไว้ ระบบปฏิบัติการจะพยายามเขียนข้อมูลสถานะของโปรเซสลงไฟล์ เพื่อให้เราสามารถวิเคราะห์สาเหตุได้

  4. Segmentation Fault ใน C/C++ คืออะไร?

    Segmentation Fault เกิดเมื่อโปรแกรมพยายามเข้าถึงพื้นที่หน่วยความจำที่ระบบปฏิบัติการไม่ได้จัดสรรให้ กล่าวคือ เข้าถึงหน่วยความจำเกินขอบเขตที่อนุญาตสาเหตุหลักมาจากพอยน์เตอร์ที่:ยังไม่ได้เริ่มต้นค่าอย่างถูกต้องถูกใช้หลังจากหน่วยความจำที่ชี้ไปถูกปล่อยหรือจัดสรรใหม่ใช้ในอาร์เรย์ที่ดัชนีอยู่นอกขอบเขต

  5. กระบวนการคอมไพล์และลิงก์ใน C/C++ ทำงานอย่างไร?

    การคอมไพล์โปรแกรม C++ ประกอบด้วย 3 ขั้นตอนหลัก:Preprocessing (ก่อนคอมไพล์) - C Preprocessor เป็นเครื่องมือแทนที่ข้อความ จัดการคำสั่ง #include, #define ฯลฯ ก่อนคอมไพล์จริงCompilation (คอมไพล์) - คอมไพเลอร์แปลงโค้ด C++ ที่ผ่าน preprocessing เป็นโค้ดแอสเซมบลี แล้วแอสเซมเบลเลอร์แปลงเป็นโค้ดเครื่อง (Obje

  6. สาเหตุทั่วไปของ Segmentation Fault ใน C/C++

    สาเหตุหลักของ Segmentation Fault คือการเข้าถึงหน่วยความจำที่ไม่ได้จองไว้ ไม่ได้เริ่มต้นค่า เกินขอบเขต หรือพยายามแก้ไขสตริงค่าคงที่ รายการสาเหตุทั่วไป:เข้าถึงอาร์เรย์เกินขอบเขต (out of bounds)ถอดอ้างอิงพอยน์เตอร์ NULL (Dereferencing NULL pointers)ถอดอ้างอิงหน่วยความจำที่ปล่อยแล้ว (Dereferencing freed

  7. วิธีแปลงสตริงเป็นจำนวนเต็มในภาษา C

    ขั้นตอนการแปลงสตริงเป็นจำนวนเต็ม:ค้นหาตำแหน่งวงเล็บเปิด ( ด้วย strchr()ดึงตัวอักษรภายในวงเล็บเก็บในอาร์เรย์ตัวอักษรแปลงสตริงผลลัพธ์เป็นจำนวนเต็มด้วย atoi()ตัวอย่างโค้ดchar *name = The Matrix(1999); char *ps; ps = strchr(name, (); char y[5] = ; int p; for (p = 1; p < strlen(ps + 1); p++) { y[p -

  8. ตัวแปรและคำสำคัญในภาษา C

    ตัวแปร (Variables)ที่เก็บข้อมูล แต่ละตัวแปรใช้หน่วยความจำต่างกัน ชื่อตัวแปรต้องไม่ขึ้นต้นด้วยตัวเลข ประกอบด้วยอักษร ตัวเลข _ ได้รูปแบบการประกาศtype variable_name;ประกาศหลายตัวแปรtype variable_name1, variable_name2, variable_name3;ตัวอย่าง#include <stdio.h> int main() { char a1 = H; int

  9. โทเค็น (Tokens) ในภาษา C

    โทเค็นคือองค์ประกอบเล็กที่สุดของโปรแกรมที่คอมไพเลอร์เข้าใจ ประกอบด้วย: คำสำคัญ (Keywords), ตัวระบุ (Identifiers), ค่าคงที่ (Constants), สตริง (Strings), ตัวดำเนินการ (Operators) ฯลฯคำสำคัญ (Keywords)คำสงวนที่มีความหมายเฉพาะใน C ทั้งหมด 32 คำautodoubleintstructbreakelselongswitchcaseenumregistertyped

  10. ชนิดข้อมูล (Data Types) ในภาษา C

    ตัวแปรใน C ผูกกับชนิดข้อมูล แต่ละชนิดใช้หน่วยความจำต่างกัน และรองรับการดำเนินการเฉพาะชนิดข้อมูลพื้นฐานint - จำนวนเต็มchar - ตัวอักษรเดี่ยวfloat - จำนวนจริงความแม่นยำเดียว (single precision)double - จำนวนจริงความแม่นยำคู่ (double precision)ตารางชนิดข้อมูลรายละเอียดชนิดข้อมูลไบต์ช่วงค่าshort int2-32,7

  11. การแปลงชนิดข้อมูล (Typecasting) ในภาษา C

    Typecasting คือการแปลงชนิดข้อมูลหนึ่งเป็นอีกชนิดหนึ่ง แบ่งเป็น 2 ประเภท1. Implicit Type Casting (การแปลงโดยอัตโนมัติ)คอมไพเลอร์ทำการแปลงเอง เมื่อนิพจน์มีตัวแปรหลายชนิด เพื่อป้องกันการสูญเสียข้อมูลตัวอย่าง#include <stdio.h> int main() { int a = 10; char b = S; float c = 2.88; a

  12. ตัวดำเนินการ sizeof ในภาษา C

    sizeof เป็นตัวดำเนินการยูนารี (unary operator) เวลาคอมไพล์ ใช้คำนวณขนาดของ operand ในหน่วยไบต์ ใช้กับชนิดข้อมูล, ตัวแปร, วิธีการ, พอยน์เตอร์ได้ ผลลัพธ์อาจต่างกันระหว่างระบบ 32-bit และ 64-bitตัวอย่างกับชนิดข้อมูล#include <stdio.h> int main() { int a = 16; printf(Size of variable a : %zu

  13. คลาสการจัดเก็บ (Storage Classes) ในภาษา C

    คลาสการจัดเก็บอธิบายลักษณะของตัวแปรและฟังก์ชัน เช่น ความมองเห็น (visibility) และขอบเขต (scope) มี 4 ประเภท: Automatic, External, Static, Registerautoคลาสเริ่มต้นสำหรับตัวแปรโลคัล สร้างเมื่อเรียกฟังก์ชัน ทำลายเมื่อฟังก์ชันจบ ค่าเริ่มต้นเป็นค่าขยะขอบเขต: ภายในบล็อกฟังก์ชันค่าเริ่มต้น: Garbage valueอาย

  14. Pre-increment และ Pre-decrement ในภาษา C

    ตัวดำเนินการเพิ่ม (++) เพิ่มค่าขึ้น 1 ตัวดำเนินการลด (--) ลดค่าลง 1รูปแบบ Pre-increment++variable_name;รูปแบบ Pre-decrement--variable_name;Pre-incrementเพิ่มค่าก่อนแล้วค่อยนำค่าไปใช้ตัวอย่าง#include <stdio.h> int main() { int i = 5; printf(The pre-incremented value : %d\n, i); whil

  15. คำสำคัญ extern ในภาษา C

    ตัวแปรภายนอก (External variables) เรียกอีกอย่างว่า ตัวแปรกลโบล (Global variables) ประกาศนอกฟังก์ชัน ใช้งานได้ทั่วโปรแกรม ค่าสามารถเปลี่ยนแปลงได้จากฟังก์ชันใดๆ ใช้คำสำคัญ extern ประกาศและนิยามขอบเขต: ทั่วโปรแกรม (global)ค่าเริ่มต้น: 0อายุการใช้งาน: จนจบโปรแกรมจุดสำคัญประกาศได้หลายครั้ง แต่นิยามได้เพี

  16. ตัวดำเนินการเชิงสัมพันธ์และตรรกะในภาษา C

    ตัวดำเนินการเชิงสัมพันธ์ (Relational Operators)ใช้เปรียบเทียบค่าสองค่า คืนค่า 1 หากจริง, 0 หากเท็จตัวดำเนินการชื่อ==Equal to>Greater than<Less than!=Not equal to>=Greater than or equal to<=Less than or equal toตัวอย่าง y) printf(x is greater than y\n); if (x < y) printf(x is less tha

  17. ตัวดำเนินการบิตวายส์ (Bitwise Operators) ในภาษา C

    ตัวดำเนินการบิตวายส์ใช้ทำงานระดับบิต (bit-level) บนตัวแปรสองตัวตัวดำเนินการชื่อ&Bitwise AND|Bitwise OR^Bitwise XOR~Bitwise Complement (NOT)<<Shift Left>>Shift Rightตัวอย่าง#include <stdio.h> int main() { int x = 10; int y = 28; int i = 0; printf(Bitwise AND : %d

  18. ฟังก์ชัน fseek() ใน C/C++

    ฟังก์ชัน fseek() ใช้ย้ายตัวชี้ไฟล์ (file pointer) ไปตำแหน่งที่กำหนด คืนค่า 0 หากสำเร็จ คืนค่าที่ไม่ใช่ 0 หากล้มเหลวรูปแบบไวยากรณ์int fseek(FILE *stream, long int offset, int whence)พารามิเตอร์stream - ตัวชี้ระบุสตรีมoffset - จำนวนไบต์จากตำแหน่งอ้างอิงwhence - ตำแหน่งอ้างอิงค่าคงที่สำหรับ whenceSEEK_

  19. ฟังก์ชัน ftell() ในภาษา C

    ฟังก์ชัน ftell() คืนตำแหน่งปัจจุบันของไฟล์สตรีม (file position) นับจากจุดเริ่มต้นของไฟล์ ใช้หาขนาดไฟล์โดยย้ายตัวชี้ไฟล์ไปท้ายไฟล์ก่อน คืนค่าเป็น long int รองรับไฟล์ขนาดใหญ่กว่า 32,767 ไบต์รูปแบบไวยากรณ์long int ftell(FILE *stream)พารามิเตอร์stream - ตัวชี้ไปยังออบเจ็กต์ FILE ที่ระบุสตรีมตัวอย่างสมมต

Total 1447 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:2/73  20-คอมพิวเตอร์/Page Goto:1 2 3 4 5 6 7 8