ผลต่างระหว่างรุ่นของ "Psl/การส่งค่าไปยังฟังก์ชัน"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 1: | แถว 1: | ||
− | : ''หน้านี้เป็นส่วนหนึ่งของวิชา [[Problem solving | + | : ''หน้านี้เป็นส่วนหนึ่งของวิชา [[Problem solving lab]]'' |
+ | |||
+ | == argument กับ parameter == | ||
+ | เพื่อความเข้าใจที่ตรงกัน เราจะพิจารณาความแตกต่างผ่านทางโค้ดด้านล่าง | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | void f(int x) { // Line 1 | ||
+ | //... | ||
+ | } | ||
+ | |||
+ | main() { | ||
+ | int y = 10; | ||
+ | f(y); // Line 7 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | เรานิยมเรียก <tt>y</tt> ในบรรทัดที่ 7 ว่า '''argument''' (เป็นตัวแปรหรือค่าที่ส่งให้กับฟังก์ชัน) ในขณะที่จะเรียก <tt>x</tt> ว่าเป็น '''parameter''' (เป็นตัวแปรที่เราประกาศพร้อมกับฟังก์ชันเพื่อเอาไว้รับค่า) | ||
+ | |||
+ | '''หมายเหตุ''' ในการใช้ทั่วไปเราอาจจะใช้สลับกันได้ ถ้าต้องการให้ชัดเจนจริง ๆ เราจะเรียก parameter ที่ประกาศในฟังก์ชันว่า ''formal'' argument/parameter และเรียก argument ในการเรียกใช้ฟังก์ชันว่า ''actual'' argument/parameter (ตาม [https://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter]) | ||
== การส่งค่าแบบ pass by value == | == การส่งค่าแบบ pass by value == | ||
+ | ในภาษา C การส่งค่าไปยังฟังก์ชันจะเป็นการส่งแบบ pass by value นั่นคือค่าจาก argument จะถูก copy ไปยังเนื้อที่ที่จองไว้สำหรับ parameter ในฟังก์ชัน ทำให้เราไม่สามารถแก้ค่าของ argument กลับไปยังจุดที่เรียกฟังก์ชันได้ | ||
+ | |||
== การใช้พอยน์เตอร์ในการส่งค่า == | == การใช้พอยน์เตอร์ในการส่งค่า == |
รุ่นแก้ไขเมื่อ 22:04, 3 กุมภาพันธ์ 2561
- หน้านี้เป็นส่วนหนึ่งของวิชา Problem solving lab
เนื้อหา
argument กับ parameter
เพื่อความเข้าใจที่ตรงกัน เราจะพิจารณาความแตกต่างผ่านทางโค้ดด้านล่าง
void f(int x) { // Line 1
//...
}
main() {
int y = 10;
f(y); // Line 7
}
เรานิยมเรียก y ในบรรทัดที่ 7 ว่า argument (เป็นตัวแปรหรือค่าที่ส่งให้กับฟังก์ชัน) ในขณะที่จะเรียก x ว่าเป็น parameter (เป็นตัวแปรที่เราประกาศพร้อมกับฟังก์ชันเพื่อเอาไว้รับค่า)
หมายเหตุ ในการใช้ทั่วไปเราอาจจะใช้สลับกันได้ ถ้าต้องการให้ชัดเจนจริง ๆ เราจะเรียก parameter ที่ประกาศในฟังก์ชันว่า formal argument/parameter และเรียก argument ในการเรียกใช้ฟังก์ชันว่า actual argument/parameter (ตาม [1])
การส่งค่าแบบ pass by value
ในภาษา C การส่งค่าไปยังฟังก์ชันจะเป็นการส่งแบบ pass by value นั่นคือค่าจาก argument จะถูก copy ไปยังเนื้อที่ที่จองไว้สำหรับ parameter ในฟังก์ชัน ทำให้เราไม่สามารถแก้ค่าของ argument กลับไปยังจุดที่เรียกฟังก์ชันได้