Just another WordPress.com site

การสร้างฟังก์ชันที่เกี่ยวข้องกับ array มักจะต้องมีการใช้ความยาวของ array มาคำนวนร่วมด้วย โชคไม่ดีที่ C++ ไม่มีคำสั่งที่ให้ค่าความยาว array โดยตรง

วิธีการคำนวนความยาว array จึงทำอ้อมๆ โดย

ความยาว array = sizeof(array)/sizeof(ชนิดข้อมูลที่เก็บใน array)

ลองดูตัวอย่างโค้ดนี้ดูนะครับ

ตัวอย่างแรกผมจะขอเริ่มจากการสร้างฟังก์ชันหาค่าเฉลี่ยของสมาชิกใน array ซึ่งเราอาจจะเขียนโค้ดได้แบบนี้

ต่อไปผมลองเขียนการเรียกใช้ฟังก์ชันนี้ใน main ดู ดังนี้

เมื่อลองรันดูจะได้ผลลัพธ์ดังภาพครับ

เนื่องจากการอ้างอิงค่าของ array มีลักษณะเป็น pointer เมื่อเราสร้างฟังก์ชันที่ใช้ array ถ้าหากว่าค่าสมาชิกที่อยู่ใน array มีการเปลี่ยนแปลงไป มันจะทำให้ค่าที่อยู่ภายนอก array ที่ฟังก์ชันนั้นๆอ้างถึงมีการเปลี่ยนแปลงตามไปด้วย เช่น สมมติผมเขียนโค้ดเพื่อที่จะต้องการบวกสมาชิกแต่ละตัวใน array ไป 5 หน่วย ผมอาจจะเขียนได้แบบนี้

ซึ่งเมื่อทำการรันจะได้ผลลัพธ์ดังนี้

ลองมาดูอีกตัวอย่างกันนะครับ ต่อไปผมต้องการสร้างฟังก์ชันที่สลับที่ค่าสมาชิกของ index ตัวที่ i กับ index ตัวที่ j ดังนี้ครับ

ผมจะลองทำการสลับค่าสมาชิกที่มี index=0 กับ index=1 ใน main ดังนี้

เมื่อลองรันดูจะได้ผลดังนี้

ปัญหาอย่างนึงสำหรับการสร้างฟังก์ชันเกี่ยวกับ array ใน C++ คือมันไม่สามารถ return ค่า array ได้ ซึ่งผมจะแก้ปัญหาดังตัวอย่างต่อไปนี้ครับ

สมมติว่าผลต้องการสร้างฟังก์ชันที่เอา array 2 ตัวมาบวกกัน หลังจากบวกกันเสร็จให้มัน return ผลลัพธ์เป็น array ออกมา ผมจะเขียนโค้ดแบบนี้ครับ

เมื่อลองใช้ฟังก์ชัน plusArray บน main ดังนี้

จะได้ผลลัพธ์ของการรันเป็นดังในภาพ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: