Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C
การเขียนโปรแกรม C
  1. Pointers (ตัวชี้) ใน C/C++: พื้นฐานและการใช้งาน

    Pointer (ตัวชี้) คือตัวแปรที่เก็บ ที่อยู่หน่วยความจำ (Memory Address) ของตัวแปรอื่น เมื่อจัดสรรหน่วยความจำให้ตัวแปร Pointer จะชี้ไปที่ที่อยู่นั้น ใช้ตัวดำเนินการ * (Unary operator) ในการประกาศและ Dereference ไวยากรณ์ datatype *variable_name; datatype - ชนิดข้อมูลที่ Pointer ชี้ไป (int, char, floa

  2. Pointer to Array (ตัวชี้อาร์เรย์) ใน C

    Pointer to Array คือ Pointer ที่ชี้ไปยังอาร์เรย์ทั้งลูก (ทั้งบล็อกหน่วยความจำ) ไม่ใช่ชี้ตัวแปรก่อนหน้า ต่างจาก Pointer to First Element (int *ptr = arr;) ที่ชี้แค่ตัวแรก ไวยากรณ์ datatype (*variable_name)[size]; datatype - ชนิดข้อมูลขององค์ประกอบ (int, char, float, ฯลฯ) variable_name - ชื่อ point

  3. วิธีพิมพ์ชื่อตัวแปรใน C

    ใน C ไม่สามารถพิมพ์ชื่อตัวแปรได้โดยตรง เพราะชื่อตัวแปรหายไปหลังคอมไพล์ (Compile-time) แต่สามารถทำได้ด้วย Stringification Operator (#) ใน Preprocessor Macro เทคนิค Stringification (# Operator) ตัวดำเนินการ # ใน Macro จะแปลง Token ให้กลายเป็น String Literal ตัวอย่าง #include <stdio.h> // Macr

  4. การเริ่มต้นอาร์เรย์หลายมิติ (Multidimensional Arrays) ใน C

    อาร์เรย์หลายมิติ (Multi-dimensional arrays) คือ อาร์เรย์ของอาร์เรย์ ข้อมูลจัดเก็บในรูปแบบตาราง (Tabular) แบบ Row-major order (แถวต่อเนื่องในหน่วยความจำ) ไวยากรณ์ type array_name[size1][size2]...[sizeN]; การเริ่มต้นค่า (Initialization) type array_name[size1][size2]...[sizeN] = { {elements_row1

  5. การเริ่มต้นอาร์เรย์ขนาดตัวแปร (Variable Length Arrays) ใน C

    Variable Length Arrays (VLA) เป็นอาร์เรย์ที่ขนาดถูกกำหนดในขณะรันไทม์ (Runtime) แทนที่จะเป็นคอมไพล์ไทม์ (Compile-time) ฟีเจอร์นี้ถูกนำมารองรับในมาตรฐาน C99 (แต่เป็น Optional ใน C11 และถูกลบใน C23) ตัวอย่างการใช้งาน VLA #include <stdio.h> #include <stdlib.h> int main() { int n; p

  6. การสลับค่าตัวแปรสองตัวโดยไม่ใช้ตัวแปรที่สามใน C/C++

    สามารถสลับค่าตัวแปรสองตัวได้โดยไม่ต้องใช้ตัวแปรชั่วคราว (temporary variable) ด้วยเทคนิคทางคณิตศาสตร์หรือ Bitwise XOR วิธีที่ 1: ใช้คณิตศาสตร์ (Arithmetic Method) a += b -= a = b - a; การทำงานทีละขั้นตอน สมมติ a = 23, b = 43 1. a = b - a → a = 43 - 23 = 20 2. b -= a → b = 43 - 20 = 23 3.

  7. ทำไมตัวแปร Global และ Static ถึงถูกเริ่มต้นค่าเริ่มต้นใน C/C++

    ตัวแปร Global และ Static ถูกเริ่มต้นค่าเริ่มต้น (default initialization) เป็นศูนย์ (0) อัตโนมัติ ตามมาตรฐานของ C และ C++ เนื่องจาก: มาตรฐานภาษา (Language Standard) - กำหนดให้ทำเช่นนี้เพื่อความปลอดภัยและพฤติกรรมที่คาดเดาได้ ประสิทธิภาพในการคอมไพล์ (Compile-time efficiency) - การตั้งค่าเป็นศูนย์เป็น

  8. วิธีบวกเลขจำนวนเต็มสองจำนวนโดยไม่ใช้ตัวดำเนินการคณิตศาสตร์ใน C/C++

    สามารถบวกเลขสองจำนวนได้โดยใช้ Bitwise Operators แทนตัวดำเนินการคณิตศาสตร์มาตรฐาน (+, -, *, /) หลักการทำงาน (Bitwise Addition) การบวกในระบบฐานสองทำได้โดย: XOR (^) - คำนวณผลบวกโดยไม่พิจารณา carry (0+0=0, 1+0=1, 0+1=1, 1+1=0) AND (&) - หาตำแหน่งที่มี carry (1+1=1 carry) Left Shift (<<) - ขยับ car

  9. แนวคิด Pre-increment และ Post-increment ใน C/C++

    ตัวดำเนินการเพิ่ม (Increment) ใช้เพิ่มค่าขึ้น 1 ในขณะที่ตัวดำเนินการลด (Decrement) ลดค่าลง 1 Pre-increment (++i) ก่อน นำค่าไปใช้งาน ค่าจะถูกเพิ่มขึ้น 1 ก่อน Post-increment (i++) หลัง นำค่าไปใช้งานแล้ว ค่าจึงจะถูกเพิ่มขึ้น 1 ไวยากรณ์ ++variable_name; // Pre-increment variable_name++; // Post-inc

  10. ตัวแปร Static ถูกเก็บอยู่ที่ไหนในหน่วยความจำ C/C++

    ตัวแปร Static (static variables) เป็นตัวแปรที่คงอยู่ในหน่วยความจำตลอดการทำงานของโปรแกรม (lifetime = entire program run) ซึ่งต่างจากตัวแปรอัตโนมัติ (automatic variables) ที่มีอยู่เฉพาะขณะฟังก์ชันทำงานและถูกทำลายเมื่อฟังก์ชันจบ ตำแหน่งในหน่วยความจำ ตัวแปร Static ถูกเก็บใน Data Segment (Data Section)

  11. ความแตกต่างระหว่าง g++ และ gcc

    g++ (GNU C++ Compiler) g++ เป็นคอมไพเลอร์สำหรับภาษา C++ ใน Linux ใช้คอมไพล์ไฟล์ทั้ง .c และ .cpp เป็น C++ code คำสั่งคอมไพล์ g++ program.cpp -o filename filename - ชื่อไฟล์ executable ที่จะสร้าง ตัวอย่าง #include <iostream> using namespace std; int main() { int a = 20; cout << The

  12. วิธีที่ถูกต้องในการใช้ printf พิมพ์ size_t ใน C/C++

    ควรใช้ตัวกำหนดรูปแบบ %zu เพื่อพิมพ์ตัวแปรชนิด size_t แม้จะใช้ %d ก็จะไม่เกิด error แต่ %zu เป็นวิธีที่ถูกต้องและปลอดภัยที่สุด ใน %zu ตัว z เป็น length modifier และ u หมายถึง unsigned type ตัวอย่าง #include <stdio.h> int main() { size_t a = 20; printf(The value of a : %zu, a); re

  13. เมื่อไหร่ควรใช้ extern ใน C/C++

    ตัวแปร External (External variables) เรียกอีกอย่างว่า Global variables คือตัวแปรที่ประกาศนอกฟังก์ชัน และเข้าถึงได้ทั่วทั้งโปรแกรม คีย์เวิร์ด extern ใช้สำหรับประกาศ (declare) และกำหนด (define) ตัวแปร external นอกจากนี้ extern C ใช้ใน C++ เพื่อประกาศฟังก์ชันที่เขียนและคอมไพล์ในภาษา C เพื่อให้ C++ เรี

  14. เมื่อไหร่ควรใช้ References เทียบกับ Pointers ใน C/C++

    ตัวแปรอ้างอิง (Reference Variable) Reference คือชื่อเรียกทางเลือก (alias) ของตัวแปรที่มีอยู่แล้ว ไม่สามารถเปลี่ยนไปอ้างอิงตัวแปรอื่นได้ และต้อง初始化 (initialize) ตอนประกาศ ไม่สามารถเป็น NULL ได้ ใช้ตัวดำเนินการ & ในการประกาศ ไวยากรณ์ datatype variable_name; // ประกาศตัวแปร datatype& refe

  15. วิธีหาความยาวของอาร์เรย์ใน C/C++

    มีหลายวิธีในการหาความยาวของอาร์เรย์ใน C/C++ นี่คือวิธีที่นิยมใช้งานมากที่สุด 2 วิธี วิธีที่ 1: ใช้ตัวดำเนินการ sizeof วิธีนี้เป็นที่นิยมและเข้าใจง่ายที่สุด โดยการหารขนาดของอาร์เรย์ทั้งหมดด้วยขนาดขององค์ประกอบหนึ่งตัว ตัวอย่าง #include <iostream> using namespace std; int main() { int arr

  16. ตัวอย่างการใช้งานคำสั่ง goto ใน C และ C++

    คำสั่ง goto เป็นคำสั่งกระโดด (jump statement) ที่ทำให้โปรแกรมกระโดดจากจุด goto ไปยังฉลาก (label) ที่กำหนด แม้จะใช้งานได้ แต่โดยทั่วไปไม่แนะนำให้ใช้ เนื่องจากทำให้โค้ดซับซ้อนและยากต่อการอ่านเข้าใจ (Spaghetti code) ไวยากรณ์ของ goto goto label; ... label: statements; ตัวอย่างการใช้งาน goto #include &

  17. การเริ่มต้นค่าตัวแปร Global และ Static ในภาษา C

    ในภาษา C ตัวแปร Global และ Static ทั้งคู่ต้องถูกเริ่มต้นค่าด้วยค่าคงที่ (constant values) เท่านั้น เนื่องจากค่าของตัวแปรเหล่านี้ต้องทราบก่อนเริ่มการทำงานของโปรแกรม หากไม่ได้กำหนดค่าคงที่ จะเกิดข้อผิดพลาดในการคอมไพล์ ตัวอย่างการเริ่มต้นค่าที่ถูกต้อง #include <stdio.h> int a = 5; //

  18. การประกาศตัวแปรแบบคงที่ในภาษา C

    ในภาษา C สามารถประกาศตัวแปรเป็นค่าคงที่ได้ 2 วิธีหลัก ได้แก่ การใช้คีย์เวิร์ด const และคำสั่งพรีโพรเซสเซอร์ #define รายละเอียดของแต่ละวิธีมีดังนี้ คีย์เวิร์ด const สามารถประกาศตัวแปรเป็นค่าคงที่ได้โดยวางคีย์เวิร์ด const นำหน้าชนิดข้อมูลของตัวแปร ตัวแปรค่าคงที่สามารถกำหนดค่าเริ่มต้นได้เพียงครั้งเดีย

  19. ทำไม C/C++ variables ไม่เริ่มต้นด้วยตัวเลข

    ใน C/C++ variable name สามารถมี alphabets, numbers และ underscore(_) ได้ มี keywords บางตัว นอกจากนั้นถือเป็น identifiers Identifiers คือชื่อ variable, constants, functions ฯลฯไม่สามารถระบุ identifier เริ่มต้นด้วยตัวเลขได้ เพราะมี 7 phases ของ compiler:Lexical AnalysisSyntax AnalysisSemantic Analysi

  20. Integer Promotions ใน C

    มี data types ที่ใช้ bytes น้อยกว่า integer เช่น char, short ถ้าทำ operations บนพวกมัน จะ automatically promoted เป็น int เรียกว่า integer promotionsโปรแกรมสาธิต integer promotion ใน C:ตัวอย่าง#include <stdio.h> int main() {    char x = 68;    char y = 34;    prin

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