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

    บทนำ ในส่วนนี้เราจะดูคุณสมบัติของ string และ string literals ถ้าต้องการต่อสตริงสองตัวใน C++ ต้องจำบางอย่าง ถ้า x + y เป็นนิพจน์ต่อสตริง โดย x และ y เป็น string ทั้งคู่ ผลลัพธ์จะเป็น copy ของตัวอักษรใน x ตามด้วยตัวอักษรใน y x หรือ y สามารถเป็น string literal หรือ character ได้ แต่ไม่ใช่ทั้งคู่ ถ้าท

  2. Stack Unwinding ใน C++

    บทนำ Stack Unwinding คือกระบวนการที่ function call stack entries ถูกลบออกในขณะรันไทม์ (runtime) เมื่อเราเรียกฟังก์ชัน มันเก็บที่อยู่ใน call stack และหลังกลับมาจากฟังก์ชัน จะ pop ที่อยู่ออกเพื่อทำงานต่อจากที่หยุดไว้ ถ้าเกิด exception ถูกโยนจากฟังก์ชันภายใน ทุก entry ใน stack จะถูกลบ และกลับไปที่ฟังก

  3. Operator Precedence และ Associativity ใน C

    บทนำ Operator precedence กำหนดการจัดกลุ่มพจน์ในนิพจน์และตัดสินใจว่าจะประเมินนิพจน์อย่างไร Operator บางตัวมี precedence สูงกว่า เช่น * สูงกว่า + ตัวอย่าง x = 7 + 3 * 2; x ได้ 13 ไม่ใช่ 20 เพราะ * มี precedence สูงกว่า + จึงคูณ 3*2 ก่อนแล้วบวก 7 ตาราง precedence (สูงสุดอยู่บนสุด): Category Opera

  4. การทำงานของ printf กับตัวดำเนินการ ++ ในภาษา C

    การทำงานของ printf กับตัวดำเนินการ ++ ในบางโจทย์อาจพบคำสั่ง printf() ที่มีตัวดำเนินการ ++ อยู่ในพารามิเตอร์ ในข้อสอบแข่งขันมักมีคำถามประเภทนี้เพื่อทายผลลัพธ์ ในส่วนนี้เราจะดูตัวอย่างและพยายามหาคำตอบ ตัวอย่างโค้ด #include <stdio.h> int main() { volatile int x = 20; printf(%d %d\n, x,

  5. โปรแกรม C หาผลรวมสองจำนวนโดยไม่ใช้ Operator ใดๆ

    บทนำ ในส่วนนี้เราจะดูวิธีพิมพ์ผลรวมของสองจำนวนโดยไม่ใช้ operator ใดๆ ในโปรแกรม ปัญหานี้ tricky เราใช้ minimum width field ของ printf() ตัวอย่างเช่น ต้องการเว้นวรรค x ช่องก่อน Hello ด้วย printf() เขียนได้ printf() รับ width และตัวอักษรที่จะพิมพ์ ในที่นี้ใช้ช่องว่าง ตัวอย่างโค้ด #include <stdio.h

  6. Ternary Operator ?: เทียบกับ if...else ใน C/C++

    บทนำ Ternary operator คือ conditional operator ใช้ตรวจสอบเงื่อนไขและทำงานตามเงื่อนไขนั้น โดยไม่ใช้ if-else ก็ได้ ผลของ ternary operator และ if-else เหมือนกันในกรณีส่วนใหญ่ แต่บางครั้งไม่สามารถใช้ if-else ได้ ต้องใช้ ternary operator เช่น การกำหนดค่าให้ constant variable ไม่ได้ด้วย if-else แต่ทำได้ด

  7. การพิมพ์ Leading Zeros ด้วย Output Operator ใน C++

    บทนำ มาดูวิธีพิมพ์ leading zeros ใน C++ หากใส่ศูนย์นำหน้าตัวเลขโดยตรง ศูนย์ทั้งหมดจะถูกตัดทิ้ง ใน C ใช้ format specifier ใน C++ ใช้ iomanip library มี setw() สำหรับกำหนดความกว้าง และ setfill(char) สำหรับเติมตัวอักษร ตัวอย่างโค้ด #include <iostream> #include <iomanip> using namespace st

  8. การ Parse Command Line Parameters ในโปรแกรม C++

    บทนำ สามารถส่งค่าจากคอมมานด์ไลน์ไปยังโปรแกรม C++ ขณะรันได้ ค่าเหล่านี้เรียกว่า command line arguments สำคัญเมื่อต้องการควบคุมโปรแกรมจากภายนอก Command line arguments จัดการด้วยอาร์กิวเมนต์ของ main() โดย argc คือจำนวนอาร์กิวเมนต์ และ argv[] คืออาร์เรย์พอยน์เตอร์ชี้ไปยังแต่ละอาร์กิวเมนต์ ตัวอย่างโค้ด

  9. วิธีใช้ Namespaces ใน C++

    บทนำ ในบทความนี้เราจะดูวิธีใช้ namespace ในโค้ด C++ นึกถึงสถานการณ์ที่มีสองคนชื่อเดียวกันคือ Zara ในห้องเรียนเดียวกัน เมื่อต้องแยกแยะ ต้องใช้ข้อมูลเพิ่มเติม เช่น ที่อยู่หรือชื่อพ่อแม่ สถานการณ์เดียวกันเกิดขึ้นใน C++ เมื่อมีฟังก์ชันชื่อเดียวกันในไลบรารีต่างกัน Namespace ช่วยแก้ปัญหานี้โดยเป็นข้อมูล

  10. วิธีใช้ค่าคงที่ PI ใน C++

    บทนำ ค่าคงที่ PI อยู่ในไฟล์ header cmath ชื่อค่าคงที่คือ M_PI เราเพียง include header นั้นและใช้ค่าคงที่ได้เลย ตัวอย่างโค้ด #include <iostream> #include <cmath> using namespace std; float area(int radius) { return M_PI * (radius * radius); } int main() { cout << Area of

  11. การเรียก main() แบบ Recursive ใน C++ ถูกกฎหมายหรือไม่?

    บทนำ ใน C หรือ C++ ฟังก์ชัน main เหมือนฟังก์ชันอื่นๆ เราสามารถใช้ฟังก์ชันการทำงานที่มีในฟังก์ชันอื่นๆ ใน main ได้เช่นกัน ในโปรแกรมต่อไปนี้ เราจะดูว่า main() เรียกตัวเองแบบ recursive เพื่อพิมพ์ตัวเลขในลำดับย้อนกลับ ตัวอย่างโค้ด #include <iostream> using namespace std; int main() { static

  12. การสร้างเลขสุ่มใน C++ (Random Number Generation)

    บทนำ มาดูวิธีสร้างเลขสุ่มใน C++ ที่นี่เราสร้างเลขสุ่มในช่วง 0 ถึงค่าสูงสุด (ในโปรแกรมนี้คือ 100) การใช้งาน srand() ใช้ฟังก์ชัน srand() จากไลบรารี C ฟังก์ชัน void srand(unsigned int seed) ใช้ seed ให้กับตัวสร้างเลขสุ่มที่ใช้โดย rand() void srand(unsigned int seed) รับพารามิเตอร์ seed เป็นค่าจำนวนเ

  13. 0 (ศูนย์) ใน C++ คือ Decimal Literal หรือ Octal Literal?

    บทนำ 0 (ศูนย์) นำหน้าตัวเลข คือ Octal Literal ใน C/C++ ใช้ octal literal โดยพิมพ์ 0 นำหน้าตัวเลขจริง เช่น เลขฐานแปด 25 เขียนเป็น 025 ตัวอย่างโค้ด #include <stdio.h> int main() { int a = 025; int b = 063; printf(Decimal of 25(Octal) is %d\n, a); printf(Decimal of 63(Octal) is

  14. มีความแตกต่างด้านประสิทธิภาพระหว่าง i++ และ ++i ใน C++ หรือไม่?

    บทนำ ผลลัพธ์ของ i++ และ ++i เหมือนกัน ความแตกต่างคือ i++ เพิ่มค่าหลังจากกำหนดค่า ส่วน ++i เพิ่มค่าก่อนแล้วค่อยกำหนด ตัวอย่างโค้ด #include <iostream> using namespace std; int main() { int x = 3, y, z; y = x++; z = ++x; cout << x << , << y << , <<

  15. วิธี Parse Command Line Arguments ใน C++

    บทนำ สามารถส่งค่าจากคอมมานด์ไลน์ไปยังโปรแกรม C++ ขณะรันได้ ค่าเหล่านี้เรียกว่า command line arguments ซึ่งสำคัญเมื่อต้องการควบคุมโปรแกรมจากภายนอกแทนการ hard-code ค่าในโค้ด Command line arguments จัดการด้วยอาร์กิวเมนต์ของ main() โดย argc คือจำนวนอาร์กิวเมนต์ และ argv[] คืออาร์เรย์พอยน์เตอร์ชี้ไปยังแ

  16. Copy Elision ใน C++

    บทนำ Copy Elision หรือ Copy Omission เป็นเทคนิคการเพิ่มประสิทธิภาพของคอมไพเลอร์ (compiler optimization) ที่หลีกเลี่ยงการคัดลอกออบเจ็กต์ที่ไม่จำเป็น คอมไพเลอร์เกือบทุกตัวในปัจจุบันใช้เทคนิคนี้ ตัวอย่างโค้ด #include <iostream> using namespace std; class MyClass { public: MyClass(const char

  17. Function Overloading และ Return Type ใน C++

    บทนำ คุณสามารถมีการนิยามหลายอย่างสำหรับชื่อฟังก์ชันเดียวกันในขอบเขตเดียวกันได้ การนิยามต้องแตกต่างกันโดยชนิดและ/หรือจำนวนอาร์กิวเมนต์ในรายการอาร์กิวเมนต์ คุณไม่สามารถ overload ฟังก์ชันที่แตกต่างกันแค่ return type ได้ Function overloading คือ compile-time polymorphism มันตรวจสอบ function signature ถ

  18. RTTI (Run-time Type Information) ในโปรแกรม C++

    บทนำ ในส่วนนี้เราจะดูว่า RTTI (Runtime Type Information) ใน C++ คืออะไร RTTI เป็นกลไกที่เปิดเผยข้อมูลเกี่ยวกับชนิดข้อมูลของออบเจ็กต์ระหว่างรันไทม์ ฟีเจอร์นี้ใช้ได้ก็ต่อเมื่อคลาสมี virtual function อย่างน้อยหนึ่งฟังก์ชัน มันช่วยให้ชนิดของออบเจ็กต์ถูกกำหนดได้ขณะที่โปรแกรมทำงานอยู่ ในตัวอย่างต่อไปนี้

  19. ลำดับการประเมินค่าพารามิเตอร์ฟังก์ชันใน C++

    บทนำ เราส่งอาร์กิวเมนต์ต่างๆ เข้าไปในฟังก์ชัน คำถามคือลำดับการประเมินค่าพารามิเตอร์เป็นอย่างไร คือจากซ้ายไปขวา หรือขวาไปซ้าย? เพื่อตรวจสอบลำดับ เราใช้โปรแกรมง่ายๆ ที่ส่งพารามิเตอร์บางอย่าง จากผลลัพธ์เราจะรู้ว่ามันถูกประเมินอย่างไร ตัวอย่างโค้ด #include <iostream> using namespace std; void t

  20. วิธีดู Assembler Output จาก C/C++ Source ใน GCC

    บทนำ นี่คือวิธีสร้าง assembler output จากโค้ด C หรือ C++ โดยใช้ GCC GCC มีฟีเจอร์ที่ดีสำหรับดู intermediate outputs ทั้งหมดจากซอร์สโค้ดระหว่างการคอมไพล์ เพื่อดู assembler output ใช้ตัวเลือก -S กับ GCC ตัวเลือกนี้แสดงผลลัพธ์หลังคอมไพล์แต่ก่อนส่งให้ assembler รูปแบบคำสั่งคือ: gcc –S program.cpp มาด

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:48/301  20-คอมพิวเตอร์/Page Goto:1 42 43 44 45 46 47 48 49 50 51 52 53 54