ผลต่างระหว่างรุ่นของ "Psl/การส่งค่าไปยังฟังก์ชัน"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 1: แถว 1:
: ''หน้านี้เป็นส่วนหนึ่งของวิชา [[Problem solving bab]]''
+
: ''หน้านี้เป็นส่วนหนึ่งของวิชา [[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 กลับไปยังจุดที่เรียกฟังก์ชันได้


การใช้พอยน์เตอร์ในการส่งค่า

การ pass by reference ใน C++

การระบุว่าเป็นค่าคงที่ด้วย const