C++ ชื่อของมันบอกเป็นนัยย์ๆ อยู่แล้วว่า โดยพื้นฐานมาจาก ภาษาโปรแกรมที่ชื่อว่า C (The C Programming Language) จะเรียกสั้นๆว่า ภาษาซี โดยเริ่มต้นนี้เราควรที่จะกล่าวถึงประวัติของภาษาซีก่อนอย่างย่อๆ
ภาษา C ถูกคิดค้นขึ้นเมื่อ ช่วงต้นๆของปี 1970 ขึ้นที่ Bell Laboratories โดย Dennis Ritchie มันถูกออกแบบมาเพื่อเป็น ภาษาในการ implement สำหรับ ระบบปฏิบัติการ Unix ประวัติของภาษา C และ Unix OS จึงถูกประสานเข้าด้วยกันอย่างใกล้ชิด ด้วยเหตุผลนี้เองทำให้ โปรแกรมของระบบปฏิบัติการ Unix มากมายนั้นถูกเขียนขึ้นด้วยภาษา C โดย Original แล้วภาษา C เป็นภาษาที่เป็นแบบ Typeless
ภาษา C++ ถูกประดิษฐ์ขึ้นโดย Bjarne Stroustroup เริ่มต้นในปี 1979 โดยเวอร์ชันแรกของภาาา C++ ถูกเรียกว่า "C with Classes" แต่ชื่อนี้ไม่ค่อยดีภายหลังจึงเปลี่ยนมาเป็น C++ โดยภาษา C++ เวอร์ชันแรกถูกใช้งานใน AT&T ในเดือน สิงหาคม 1983 การ Implement ในเชิงธุกิจถูกใช้ในปี 1985
ปัจจุบันมาตรฐานของภาษา C++ ถูกจัดการโดย American National Standards Institute (ANSI) และ The International Standards Organization (ISO) นี้เป็นที่ว่าทำไมคุณถึงได้ยินบ่อยๆว่า C++บริสุทธ์(Pure C++) มักถูกอ้างถึง ในมาตรฐานของ ANSI หรือ ISO
Hint: Pure C++ ถูกกล่าวถึงเพราะว่า มีเวอร์ชันขยายต่อมากมายที่ขยายต่อจาก Pure C++ ไปเพื่อพัฒนาเป็นรุ่นที่เฉพาะเจาะจงสำหรับ Operating system หรือ Compiler
C++ กับ C
คุณรู้แล้วว่า ภาษา C ถูกพัฒนามาก่อน แล้ว C++ จึงพัฒนาต่อมาจาก C และคุณอาจจะกำลังถามตัวเองว่า อ้าวแล้วอะไรล่ะมันคือความต่างระหว่าง ภาษา C และ C++ คำตอบก็คือสิ่งที่แตกต่างกันอย่างเห็นได้ชัดเลยก็คือ
- C++ สนับสนุน OOP (Object-Oriented Programming)
- C++ จัดการกับ สายอักขระ (String) ได้ดีกว่า C
- C++ มี Exception Handling ที่ดีกว่า C
- ... อื่นๆ
เราจะเขียนโปรแกรม C++ ได้อย่างไร
เนื่องจากมีหลากหลายทางมากในการจะสามารถเขียนภาษา C++ ได้ โดยการเปิด Text editor ขึ้นมา บันทึกไฟล์นั้นแล้วทำการใช้ Command line compiler ในการคอมไพล์ไฟล์นั้น และนั่นจะเป็นวิธีที่ใช้ในการอธิบายใน Blog นี้ด้วยครับ
จริงๆแล้ววิธีอื่นก็มี เช่น เขียนโดยใช้ IDE(Integrated Development Environment) ในตัวอย่างใน Blog นี้จะใช้ Free Download Version ของ Borland C++ Compiler ซึ่งเป็นตัวที่ไม่มี IDE หรือตัวช่วยอื่นๆเลย
ระบบปฏิบัติการวินโดว์(Seven) สามารถเข้าใช้งาน Command line ได้โดย คลิกที่ ปุ่มรูปวินโดว์ ล่างขวามือพิมพ์ในช่อง Search ว่า "cmd" จะขึ้นเป็น หน้าต่างดำๆ ตัวหนังสือสีขาวขึ้นมา ใช้งานโดยการพิมพ์คำสั่งลงไป แล้วกดปุ่ม Enter
ต่อไปนี้จะพูดถึงการดาวน์โหลด และการติดตั้ง และการคอมไพล์ไฟล์ ตัวใช้ Borland C++ Compiler 5.5
1. ให้ทำการ ดาวน์โหลด Borland C++ Compiler 5.5 (สามารถ Search ได้จาก google)
2. โหลดมาจะได้ไฟล์ ที่นามสกุลเป็น .exe ซึ่งสามารถ ทำการ install ได้เลย
3. เมื่อติดตั้งเสร็จแล้ว ต้อง ทำการ Set 2 Configuration files (สามารถดูจากไฟล์ readme.txt ได้หลังจากลงตัวคอมไพล์แล้ว)
เริ่มการสร้างไฟล์โดยใช้ Notepad หรือ Text Editor ต่างๆ เพื่อนสร้างสองไฟล์ดังนี้
1. เปิด Text Editor แล้วพิมพ์
-I"C:\BORLAND\BCC55\INCLUD
-L"C:\BORLAND\BCC55\LIB"
จากนั้นบันทึกไฟล์โดยบันทึกชื่อ BCC32.CFG (เป็นสกุล .CFG ไม่ใช่ BCC32.CFG.txt นะครับ)
แล้วนำไฟล์นี้ไปใส่ไว้ใน Folder ที่ลง Compiler ไว้ ตาม path นี้ "C:\BORLAND\BCC55\BIN"
2. เปิด Text Editor แล้วพิมพ์
-L"C:\BORLAND\BCC55\LIB"
จากนั้นบันทึกไฟล์โดยบันทึกชื่อ LINK32.CFG (เป็นสกุล .CFG ไม่ใช่ BCC32.CFG.txt นะครับ)
แล้วนำไฟล์นี้ไปใส่ไว้ใน Folder ที่ลง Compiler ไว้ ตาม path นี้ "C:\BORLAND\BCC55\BIN"
4. ทำการ Set ตัวแปรสภาพแวดล้อม(Environment Variable) -- เฉพาะ ระบบปฏิบัติการ Windows ถ้าเป็นระบบปฏิบัติการอื่นต้องลองหาวิธี Set ตัวแปรสภาพแวดล้อมเองนะครับ
ทำโดยการ เข้าไปที่ Control Panel --> System --> Advanced System Setting --> Environment Variable
เมื่อเปิดหน้าต่างดังกล่าวมาแล้ว ให้ดูที่ User variable for ...Your Pc Name... --> กดปุ่ม New... Variable name ให้ชื่อว่า path และ variable value ให้พิมพ์ %path%;c:\Borland\BCC55\Bin; แล้วกด OK เท่านี้ก็เสร็จสิ้น
5. การคอมไพล์ เราสามารถทำได้โดย เปิด Command line ขึ้นมา เข้าไปยัง Directory ที่ไฟล์ต้นฉบับ(Source code)ของเราอยู่ จากนั้นพิมพ์ bcc32 filename.cpp จะได้ไฟล์ทั้งหมด 3 ไฟล์ แต่ที่เราสนใจคือ .exe เท่านั้นเป็น executable ไฟล์ เราสามารถรันไฟล์นี้เพื่อดูผลลัพธ์ได้
* แต่ผมก็มี IDE แนะนำนะครับลองโหลด Dev-C++ มาใช้ดู ก็ได้ครับ ตัวนี้ ตัวคอมไพล์จะเป็น gcc นะครับ อันนี้ใช้งานสะดวกดีแค่กด F9 ก็คอมไพล์พร้อมรันให้เสร็จ
หลักเบื้องต้นของภาษา C++
ภาษา C++ ก็เป็นภาษาโปรแกรมที่มีความคล้ายคลึงกับภาษาโปรแกรมอื่นๆ ลำดับแรกเราจะต้องรู้อย่างชัดเจนก่อนว่า ภาษาโปรแกรมคืออะไร คอมพิวเตอร์รู้จักเพียง 1's และ 0's ไม่สวิชเปิดก็ปิด คนเรามีปัญหาในการทำความเข้าใจ 1's และ 0's ภาษาโปรแกรมเป็นสะพานทอดระหว่างการทำความรู้จักกันระหว่าง คอมพิวเตอร์ กับ มนุษย์
"Low-level language"หรือ"ภาษาระดับต่ำ" เป็นภาษาโปรแกรมที่มีความใกล้เคียงกับเครื่องคอมพิวเตอร์ซึ่งห่างจากมนุษย์ ตัวอย่างก็เช่นพวก ภาษา Assembly ส่วน "High-level Language" หรือ "ภาษาระดับสูง"เป็นภาษาที่มีความใกล้เคียงกับภาษามนุษย์มาก เช่น ภาษา COBOL ภาษา BASIC ส่วนภาษา C และ C++ หลายๆคนอาจจะกำลังคิดว่ามันคือภาษาระดับสูง แต่จริงๆแล้ว C, C++ น่าจะเป็นภาษาที่อยู่ตรงกลางระหว่าง ภาษาระดับสูง หรืออาจจะพิจารณาว่ามันคือ ภาษาระดับกลาง หรือ "Mid-level language" นั่นเอง
ระดับของภาษาที่กล่าวถึงนี้พิจารณา พิจารณาจากความห่างระหว่าง ภาษาโปรแกรมกับภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ ว่าห่างกันมากแค่ไหนซึ่งไม่เกี่ยวกับว่ามันมี ความสามารถหรือความยาก-ง่าย ในการเรียนรู้มัน หรือ ความ ยาก-ง่าย ในการใช้งาน
ภาษาโปรแกรมต่างๆ ต่างมีจุดขแข็งและจุดด้อยที่แตกต่างกันออกไป เช่น ภาษา BASIC ใช้ง่าย แต่ก็มีจุดอ่อนด้านความยืดหยุ่น(flexible) และ ประสิทธิภาพ(powerful) อื่นๆ เช่น Assembly อาจมีประสิทธิภาพมาก แต่ ใช้ยาก ภาษา C, C++ น่าจะอยู่ตรงกลางคือ มีประสิทธิภาพ(ในระดับหนึ่ง แต่ไม่เท่า Assembly) และ ก็เขียนง่าย(ในระดับหนึ่งแต่ไม่เท่า ภาษาBASIC)
ภาษาโปรแกรมแต่ละภาษาก็มีวัตถุประสงค์(ในใจ) ต่างกันออกไป FORTRAN ถูกอกแบบมาเพื่อเพื่อเฉพาะกับการเขียนโปรแกรมเชิงคณิตศาสตร์ (Mathematical Programming) BASIC ถูกออกแบบมาเพื่อให้ง่ายในการสอนเขียนโปรแกรม และ COBOL ถูกออกแบบมาเพื่องานทางธุรกิจ (Business Applications) แต่ C++ ออกแบบมาเพื่อจุดประสงค์ทั่วไป(General Purpose) เช่น เพื่อ งานด้านธุรกิจ(Business Applications), telecommunications programming, ปัญญาประดิษฐ์(Artificial Intelligence), Games programming, และอื่นๆอีกมากมาย นี่เป็นเหตุผลหนึ่งที่คุณครูมักจะเลือกภาษา C++ ในการสอนนักเรียน เพราะสามารถนำไปใช้งานได้หลากหลาย
ในทางธุรกิจ การโปรแกรม(Programming) มักถูกอ้างถึงในเรื่องการประมวลผลข้อมูล, เทคโนโลยีสารสนเทศ(IT), อื่นๆ ข้อมูลต่างๆนั้นอาจจะเป็นข้อมูล ลูกจ้าง หรืออาจจะแบ่งเป็น การคำนวณเชิงคณิตศาสตร์(Mathematical Computation) ข้อมูลเชิงวิทยาศาสตร์(Scientific Data) รวมไปถึง ข้อมูลต่างๆที่เป็นองค์ประกอบของเกมส์
เป้าหมายสุดยอดของการโปรแกรมคือ เพื่อที่จะเก็ยข้อมูล จัดการ(Manipulate) และ เรียกค้นคืน(Retrieve)ข้อมูล ข้อมูลจะต้องถูกเก็บอย่างชั่วคราวก่อนในโปรแกรมก่อน เพื่อที่จะถูกจัดการต่อไป การจัดเก็บต่างๆเหล่านี้ เราสามารถทำได้โดยผ่านตัวแปร(Variables)
ตัวแปร เปรียบเสมือน พื้นที่ๆหนึ่ง บนหน่วยความจำ(Memory) ที่จะเก็บข้อมูลที่เป็นชนิดต่างๆกัน (int, float, double, ...)บนหน่วยความจำของคอมพิวเตอร์ในส่วนที่เป็นหน่วยความจำที่คอมพิวเตอร์จัดไว้ให้โดยเฉพาะ และที่มันเรียกว่าเป็น ตัวแปร (Variable) นั่นก็เพราะว่า ค่านั้นสามารถเปลี่ยนแปลงได้ เมื่อประกาศตัวแปรนั้นหมายถึงว่า คุณกำลังกำหนดพื้นที่เล็กๆของ Memory ของคอมพิวเตอร์เพื่อวัตถุประประสงค์ในการจะจัดเก็บข้อมูล
"Low-level language"หรือ"ภาษาระดับต่ำ" เป็นภาษาโปรแกรมที่มีความใกล้เคียงกับเครื่องคอมพิวเตอร์ซึ่งห่างจากมนุษย์ ตัวอย่างก็เช่นพวก ภาษา Assembly ส่วน "High-level Language" หรือ "ภาษาระดับสูง"เป็นภาษาที่มีความใกล้เคียงกับภาษามนุษย์มาก เช่น ภาษา COBOL ภาษา BASIC ส่วนภาษา C และ C++ หลายๆคนอาจจะกำลังคิดว่ามันคือภาษาระดับสูง แต่จริงๆแล้ว C, C++ น่าจะเป็นภาษาที่อยู่ตรงกลางระหว่าง ภาษาระดับสูง หรืออาจจะพิจารณาว่ามันคือ ภาษาระดับกลาง หรือ "Mid-level language" นั่นเอง
ระดับของภาษาที่กล่าวถึงนี้พิจารณา พิจารณาจากความห่างระหว่าง ภาษาโปรแกรมกับภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ ว่าห่างกันมากแค่ไหนซึ่งไม่เกี่ยวกับว่ามันมี ความสามารถหรือความยาก-ง่าย ในการเรียนรู้มัน หรือ ความ ยาก-ง่าย ในการใช้งาน
ภาษาโปรแกรมต่างๆ ต่างมีจุดขแข็งและจุดด้อยที่แตกต่างกันออกไป เช่น ภาษา BASIC ใช้ง่าย แต่ก็มีจุดอ่อนด้านความยืดหยุ่น(flexible) และ ประสิทธิภาพ(powerful) อื่นๆ เช่น Assembly อาจมีประสิทธิภาพมาก แต่ ใช้ยาก ภาษา C, C++ น่าจะอยู่ตรงกลางคือ มีประสิทธิภาพ(ในระดับหนึ่ง แต่ไม่เท่า Assembly) และ ก็เขียนง่าย(ในระดับหนึ่งแต่ไม่เท่า ภาษาBASIC)
ภาษาโปรแกรมแต่ละภาษาก็มีวัตถุประสงค์(ในใจ) ต่างกันออกไป FORTRAN ถูกอกแบบมาเพื่อเพื่อเฉพาะกับการเขียนโปรแกรมเชิงคณิตศาสตร์ (Mathematical Programming) BASIC ถูกออกแบบมาเพื่อให้ง่ายในการสอนเขียนโปรแกรม และ COBOL ถูกออกแบบมาเพื่องานทางธุรกิจ (Business Applications) แต่ C++ ออกแบบมาเพื่อจุดประสงค์ทั่วไป(General Purpose) เช่น เพื่อ งานด้านธุรกิจ(Business Applications), telecommunications programming, ปัญญาประดิษฐ์(Artificial Intelligence), Games programming, และอื่นๆอีกมากมาย นี่เป็นเหตุผลหนึ่งที่คุณครูมักจะเลือกภาษา C++ ในการสอนนักเรียน เพราะสามารถนำไปใช้งานได้หลากหลาย
ในทางธุรกิจ การโปรแกรม(Programming) มักถูกอ้างถึงในเรื่องการประมวลผลข้อมูล, เทคโนโลยีสารสนเทศ(IT), อื่นๆ ข้อมูลต่างๆนั้นอาจจะเป็นข้อมูล ลูกจ้าง หรืออาจจะแบ่งเป็น การคำนวณเชิงคณิตศาสตร์(Mathematical Computation) ข้อมูลเชิงวิทยาศาสตร์(Scientific Data) รวมไปถึง ข้อมูลต่างๆที่เป็นองค์ประกอบของเกมส์
เป้าหมายสุดยอดของการโปรแกรมคือ เพื่อที่จะเก็ยข้อมูล จัดการ(Manipulate) และ เรียกค้นคืน(Retrieve)ข้อมูล ข้อมูลจะต้องถูกเก็บอย่างชั่วคราวก่อนในโปรแกรมก่อน เพื่อที่จะถูกจัดการต่อไป การจัดเก็บต่างๆเหล่านี้ เราสามารถทำได้โดยผ่านตัวแปร(Variables)
ตัวแปร เปรียบเสมือน พื้นที่ๆหนึ่ง บนหน่วยความจำ(Memory) ที่จะเก็บข้อมูลที่เป็นชนิดต่างๆกัน (int, float, double, ...)บนหน่วยความจำของคอมพิวเตอร์ในส่วนที่เป็นหน่วยความจำที่คอมพิวเตอร์จัดไว้ให้โดยเฉพาะ และที่มันเรียกว่าเป็น ตัวแปร (Variable) นั่นก็เพราะว่า ค่านั้นสามารถเปลี่ยนแปลงได้ เมื่อประกาศตัวแปรนั้นหมายถึงว่า คุณกำลังกำหนดพื้นที่เล็กๆของ Memory ของคอมพิวเตอร์เพื่อวัตถุประประสงค์ในการจะจัดเก็บข้อมูล
ชื่อตัวแปร จะเหมือนป้ายบอกว่า พื้นที่ที่กำหนดไว้นั้นอยู่ที่ address ไหนบน Memory( ชื่อที่อ้างถึงตำแหน่งใน Memory ของคอมพิวเตอร์นั้นเอง)
คุณอาจสามารถประกาศตัวแปลได้ตามนี้
int i;
หลังจากบรรทัดนี้ คุณได้จองพื้นที่บน Memory ทั้งหมด 4 ไบท์(Bytes) และคุณใช้ตัวแปรที่ชื่อว่า i อ้างถึงพื้นที่ 4 ไบท์เหล่านี้ และคุณกำลังบอกว่า ชนิดของตัวแปรที่ i นี้สามารถเก็บได้คือชนิดอะไร (ในที่นี้ ประกาศว่า i มีชนิดเป็น int, int คือชนิดข้อมูลประเภทจำนวนเต็มที่ใช้ทั้งหมด 4 bytes หรือ 32 bits ในการเก็บ) ทีนี้เมื่อคุณอ้างถึงตัวแปรที่ชื่อ i ในการเขียนโปรแกรม ก็จะหมายถึงค่าที่กำลังถูกเก็บไว้ใน Memory นี้ที่ได้จองไว้แล้วเท่านั้น!
คราวนี้เรามาดูกันว่า ชนิดของตัวแปรคืออะไร ข้อมูลในภาษา C++ นั่นมาในรูปแบบชนิดที่แตกต่างกัน บางข้อมูลประกอบด้วยตัวเลข บางข้อมูลประกอบด้วยตัวอักขระ ... ภาษาโปรแกรมจะรู้จำเฉพาะชนิดข้อมูลที่แน่นอนเท่านั้น หรือ ก็คือ ประเภทของข้อมูลนั้นเอง
ชนิดข้อมูลพื้นฐานที่ C++ รู้จำได้จะแสดงในตารางด้านล่างนี้ (นอกจากนั้นยังมีชนิดข้อมูลที่นอกเหนือจากนี้ที่จะอธิบายให้ฟังในหัวข้ออื่น)
ข้อควรระวัง : การใช้ --(decrease operator), ++(increase operator) ถ้า เครื่องหมายดังกล่าวอยู่ด้านหน้าตัวแปร โปรแกรมจะทำการ เพิ่มหรือลด ค่าก่อนจึงจะทำงานอย่างอื่นต่อ เช่น
int x = 5, ans1, ans2, ans3, ans4;
ans1 = x++; //ให้ค่า ans1 ก่อนจึงเพิ่มค่า x ไป 1
ans2 = x;
ans3 = ++x; //เพิ่มค่า x ก่อนจึงให้ค่า ans3
ans4 = x;
ค่าที่เก็บในตัวแปร ans1 จะเป็นเท่าไร? คำตอบคือ 5
ค่าที่เก็บในตัวแปร ans2 จะเป็นเท่าไร? คำตอบคือ 6
นอกจากนี้แล้ว เครื่องหมายทางคณิตศาสตร์ต่างๆ ลำดับความสำคัญก็ถูกนิยามเหมือนใน วิชาคณิตศาสตร์นั้นคือ ทำ คูณก่อนจึงหาร แล้วจึงบวก แล้วจึงลบ ตามลำดับ และจากซ้ายไปขวา
สำหรับ ตัวดำเนินการที่ต้องการ operand 1 ตัว เราจะเรียกว่า unary operator เช่น
-5, -4, -x, x++, --x เป็นต้น ส่วนตัวดำเนินการที่ต้องการ operand 2 ตัวเรียกว่า binary operator เช่น x + 3, 5 < 3, x = 4 เป็นต้น
*Operand คือตัวที่นำมาทำการดำเนินการตาม operator เช่น x + 5;
+ เป็น operator ส่วน x และ 5 เป็น operand
(ยังไม่จบ)
คุณอาจสามารถประกาศตัวแปลได้ตามนี้
int i;
หลังจากบรรทัดนี้ คุณได้จองพื้นที่บน Memory ทั้งหมด 4 ไบท์(Bytes) และคุณใช้ตัวแปรที่ชื่อว่า i อ้างถึงพื้นที่ 4 ไบท์เหล่านี้ และคุณกำลังบอกว่า ชนิดของตัวแปรที่ i นี้สามารถเก็บได้คือชนิดอะไร (ในที่นี้ ประกาศว่า i มีชนิดเป็น int, int คือชนิดข้อมูลประเภทจำนวนเต็มที่ใช้ทั้งหมด 4 bytes หรือ 32 bits ในการเก็บ) ทีนี้เมื่อคุณอ้างถึงตัวแปรที่ชื่อ i ในการเขียนโปรแกรม ก็จะหมายถึงค่าที่กำลังถูกเก็บไว้ใน Memory นี้ที่ได้จองไว้แล้วเท่านั้น!
คราวนี้เรามาดูกันว่า ชนิดของตัวแปรคืออะไร ข้อมูลในภาษา C++ นั่นมาในรูปแบบชนิดที่แตกต่างกัน บางข้อมูลประกอบด้วยตัวเลข บางข้อมูลประกอบด้วยตัวอักขระ ... ภาษาโปรแกรมจะรู้จำเฉพาะชนิดข้อมูลที่แน่นอนเท่านั้น หรือ ก็คือ ประเภทของข้อมูลนั้นเอง
ชนิดข้อมูลพื้นฐานที่ C++ รู้จำได้จะแสดงในตารางด้านล่างนี้ (นอกจากนั้นยังมีชนิดข้อมูลที่นอกเหนือจากนี้ที่จะอธิบายให้ฟังในหัวข้ออื่น)
สำหรับชนิดข้อมูลให้เลือกชนิดข้อมูลที่ สมเหตุสมผลกับข้อมูลที่เราจะเก็บจริงๆ อย่างเช่น เราประกาศตัวแปร int เพื่อที่จะเก็บอายุของคนในรูปจำนวนเต็ม แต่ในความเป็นจริง int นั่นขนาดมากมายเกินที่จะอายุคน (เก็บได้แต่มันเปลือง Memory) เราใช้เพียง short ก็พอแล้ว นอกจากนั้น ถ้าต้องการเก็บจำนวนเงิน, เกรดเฉลี่ย หรือ อุณหภูมิ อาจจะใช้ float ในการเก็บ แต่หากจะเก็บข้อมูลเกี่ยวกับ ดาราศาสตร์ ซึ่งเป็น decimal ที่มีตัวเลขมาก ต้องการความละเอียดสูงๆ อาจจะใช้ double เพราะฉะนั้นให้เราเลือก ชนิดข้อมูลที่เหมาะสม
เพิ่งเติมจากการพิจารณาชนิดข้อมูลแล้ว เรายังต้องสนใจการใช้ชื่อตัวแปรอีกด้วย กฏต่อไปนี้เป็นกฏการตั้งชื่อตัวแปรเฉพาะภาษา C++ เท่านั้น
1. ชื่อตัวแปร จะต้องขึ้นต้นตัว ตักอักษร หรือ _ เท่านั้น (ห้ามขึ้นต้นด้วยตัวเลข หรือ ลักญลักษณ์อื่นๆ %, ^, ( ...)
2. ภายในชื่อ(รวมตัวเริ่มต้น) อาจจะเป็นตัวใหญ่หรือตัวเล็กก็ได้ หรืออาจจะเป็น ตัวเลข หรือ _ ก็ได้
3. ภาษา C++ เป็น Case sensitive นั่นคือ ตัวอักษรตัวใหญ่ และ ตัวเล็ก ไม่เหมือนกัน(เช่น mY_var กับ my_var ไม่เหมือนกัน)
นอกจากนั้นแล้ว การตั้งชื่อตัวแปรควรตั้งให้สื่อความหมาย การตั้งไม่สื่อความหมาย แม้ว่า Compiler จะยอมให้ผ่านไปได้ แต่หาก มันก็จะเป็นการยากในการอ่าน Source Code ของโปรแกรมเรา หรือยากในการตรวจข้อผิดพลาดต่างๆด้วย เช่น หากคุณตั้งชื่อตัวแปรสำหรับเก็บเลขบัญชี ไม่ควรตั้งชื่อว่า x หรือ y แต่ควรตั้งให้สื่อความหมาย เช่น acctnum หรือ account_number เป็นต้น เหนือไปกว่านั้นอีก มีนักเขียนโปรแกรมบางคนใช้ ตัวอักษรนำหน้าเพื่อนแสดงถึงชนิดตัวตัวเอง เช่น
int iacctnum; เพื่อสื่อความหมายให้รู้ว่า iacctnum นี้มีชนิดเป็น int (i ขึ้นต้น)
float fdistance_between_2planets; ... ในทำนองเดียวกัน
การประกาศตัวแปรที่แสดงให้เห็นที่ผ่านมาแล้วนั่น คุณอาจจะกำลังสงสัยถึง ; (semi-colon) ที่อยู่สุดท้ายก่อนจบประโยค ในแต่ละ Statement ของ ภาษา C++(รวมถึง ภาษา อื่นๆ ส่วนใหญ่ด้วยเช่น Sun java, C ) ก็จบประโยค(Statement) ด้วย ;
Semi-colon บอก Compiler ว่า คุณได้เขียนสิ้นสุดประโยค(Statement)นี้แล้ว
ประโยค (Statement) เป็น 1 บรรทัด ในความเข้าใจของ Compiler ที่จะทำงานบางอย่างที่คุณเขียน
การให้ค่าเริ่มต้น(Initialization)กับตัวแปร ทำได้โดยการให้ค่า( assign ) ค่าให้กับตัวแปรในบรรทัดที่ประกาศนั้นเลย เช่น
int iacctnum = 528400156;
int count = 0;
เป็นต้น
Statements and Expressions
จากที่เราได้ดูมาแล้วนั้นประโยค(Statement) หรือเราเรียกอีกชื่อหนึ่งได้ว่า Expression ซึ่งมันคือ งานงานหนึ่งที่ทำ อาจจะเป็นเช่น บวกเลข เปรียบเทียบเลขสองตัว ... อื่นๆ ซึ่งแต่ละงานอย่างลืมว่าจะจบด้วย semi-colon และสำหรับข้อผิดพลาดนักเขียนโปรแกรมมือใหม่ อาจจะเป็นการลืมใส่ semi-colon นั่นเอง
ตัวดำเนินการ (Operator)
ตัวดำเนินการ (Operator) คือ สัญลักษณ์ง่ายๆที่ทำงานบางอย่าง โดยส่วนใหญ่ จะเป็น ตัวดำเนินการทางคณิตศาสตร์ เช่น + , - , x , / เป็นต้น C++ สนับสนุนตัวปฏิบัติการมากมายหลายตัวที่คุณควรที่จะคุ้นเคยกับมัน ตารางด้านล่างนี้คือตารางแสดงตัวปฎิการต่างๆที่ C++ สนับสนุน
Operator
|
Purpose
|
Example
|
+
|
สำหรับการบวกเลขสองจำนวนเข้าด้วยกัน
|
int ans; ans = 3 + 2;
|
-
|
สำหรับการลบเลขสองจำนวนเข้าด้วยกัน
|
int ans; ans = 3 - 2;
|
*
|
สำหรับการคูณเลขสองจำนวนเข้าด้วยกัน
|
int ans; ans = 3 * 2;
|
/
|
สำหรับการหารเลขสองจำนวนเข้าด้วยกัน
|
float ans; ans = 3 / 2;
|
++
|
สำหรับเพิ่มค่าตัวแปร 1
|
ans++;
|
--
|
สำหรับลดค่าตัวแปร 1
|
ans--;
|
=
|
สำหรับการให้ค่า(Assignment)
นำค่าด้านขวามือของตัวปฏิบัติการนี้ใส่ให้กับ ตัวแปรทางด้านซ้ายมือ
|
ans = 3 * 2;
|
==
|
เครื่องหมายเปรียบเทียบค่าทางขวากับทางซ้าย ว่า เท่ากันหรือไม่ (ถ้าเท่ากันจะเป็นจริง(True) ถ้าไม่เท่ากันจะเป้นเท็จ(False))
|
if (x == 3) ans = 1;
|
!=
|
เครื่องหมายเปรียบเทียบค่าทางขวากับทางซ้าย ว่า ไม่เท่ากันหรือไม่ (ถ้าไม่เท่ากันจะเป็นจริง(True) ถ้าเท่ากันจะเป้นเท็จ(False))
|
if (x != 3) ans = 0;
|
<=. >=
|
เครื่องหมายเปรียบเทียบค่าทางขวากับทางซ้าย ว่า น้อยกว่าเท่ากับ(<=) (ถ้าน้อยกว่าหรือเท่ากับจะเป็นจริง(True) ถ้ามากกว่าจะเป็นเท็จ(False))
อีกอันก็ในทางตรงกันข้าม
|
If (age >= 18) ans = 0;
If (age <= 20) ans = 1;
|
<,>
|
เครื่องหมายเปรียบเทียบค่าทางขวากับทางซ้าย ว่า น้อยกว่า(<=) (ถ้าน้อยกว่าจะเป็นจริง(True) ถ้ามากกว่าหรือเท่ากับจะเป็นเท็จ(False))
อีกอันก็ในทางตรงกันข้าม
|
If (age > 17) ans = 0;
If (age < 21) ans = 1;
|
+=
|
เครื่องหมาย บวก แล้ว จึงให้ค่า (Add then assign)
|
ans += 5;
|
-=
|
เครื่องหมาย ลบ แล้ว จึงให้ค่า (Subtract then assign)
|
ans -= 5;
|
||
|
ตัวปฏิการทางตรรกศาสตร์ “หรือ”
|
If(ans > 5 || ans < -2)
|
&&
|
ตัวปฏิการทางตรรกศาสตร์ “และ”
|
If(ans > 5 && ans < -2)
|
>>
|
Bitwise shift to the right
|
3<<2
|
<<
|
Bitwise shift to the left
|
3>>2
|
&
|
Bitwise and
|
3&2
|
|
|
Bitwise or
|
3|2
|
ข้อควรระวัง : การใช้ --(decrease operator), ++(increase operator) ถ้า เครื่องหมายดังกล่าวอยู่ด้านหน้าตัวแปร โปรแกรมจะทำการ เพิ่มหรือลด ค่าก่อนจึงจะทำงานอย่างอื่นต่อ เช่น
int x = 5, ans1, ans2, ans3, ans4;
ans1 = x++; //ให้ค่า ans1 ก่อนจึงเพิ่มค่า x ไป 1
ans2 = x;
ans3 = ++x; //เพิ่มค่า x ก่อนจึงให้ค่า ans3
ans4 = x;
ค่าที่เก็บในตัวแปร ans1 จะเป็นเท่าไร? คำตอบคือ 5
ค่าที่เก็บในตัวแปร ans2 จะเป็นเท่าไร? คำตอบคือ 6
ค่าที่เก็บในตัวแปร ans3 จะเป็นเท่าไร? คำตอบคือ 7
ค่าที่เก็บในตัวแปร ans4 จะเป็นเท่าไร? คำตอบคือ 7
นอกจากนี้แล้ว เครื่องหมายทางคณิตศาสตร์ต่างๆ ลำดับความสำคัญก็ถูกนิยามเหมือนใน วิชาคณิตศาสตร์นั้นคือ ทำ คูณก่อนจึงหาร แล้วจึงบวก แล้วจึงลบ ตามลำดับ และจากซ้ายไปขวา
สำหรับ ตัวดำเนินการที่ต้องการ operand 1 ตัว เราจะเรียกว่า unary operator เช่น
-5, -4, -x, x++, --x เป็นต้น ส่วนตัวดำเนินการที่ต้องการ operand 2 ตัวเรียกว่า binary operator เช่น x + 3, 5 < 3, x = 4 เป็นต้น
*Operand คือตัวที่นำมาทำการดำเนินการตาม operator เช่น x + 5;
+ เป็น operator ส่วน x และ 5 เป็น operand
(ยังไม่จบ)