Function Swap
Function Swap หรือเรียกภาษาไทยว่า สลับ นั่นคือการนำเอาตัวแปร 2 ตัวมาสลับค่าที่กำลังชี้อยู่ ยกตัวอย่างเช่น เราเขียนโปรแกรมให้รับค่าเข้ามา 2 ตัว เป็น 1 กับ 2 แล้วใช้ตัวแปร 2 ตัวเป็นตัวรับค่าโดยให้ตัวแปร x รับ 1 ตัวแปร y รับ 2 แล้วให้สลับกัน โดยให้ x ชี้ไปหา 2 แล้วให้ y ชี้ไปหา 1
#include <stdio.h>
void swap(int *x, int *y) \\ประกาศชื่อฟังก์ชั่น และให้รับ pointer เข้ามา 2 ตัว
{
int z=*x; \\ประกาศตัวแปรใหม่มาเก็บค่าที่ x ชี้อยู่ไว้(ตรงนี้ให้เก็บค่าตัวใดตัวหนึ่ง y ก็ได้)
*x=*y; \\ให้ตัว x ที่เราเก็บค่าไปแล้ว ชี้ไปหาตัวที่ y ชี้อยู่ ตรงนี้เราจะได้ว่า x=2 y=2 z=1
*y=z; \\ให้ y ชี้ไปหาตัวที่ z ชี้อยู่ ดังนั้นจะได้ x=2 y=1 z=1
}
int main()
{
int a,b;
scanf("%d %d",&a,&b); \\สมมุติผมป้อน 1 2 ตามลำดับ
printf("Before swap : %d %d\n",a,b);
swap(&a,&b); \\เรียกใช้ฟังก์ชั่น swap
printf("After swap : %d %d",a,b);
return 0;
}
Run program
1 2 \\สมมุติป้อน 1 2
Before swap : 1 2
After swap : 2 1
ผิดพลาดประการได้ตักเตือนหรือสั่งสอนกันได้นะครับ ผมยังด้อยความรุ้อีกเยอะครับ ขออภัยมา ณ ที่นี้ด้วยครับ ขอบคุณครับ ..
#include <stdio.h>
void swap(int *x, int *y) \\ประกาศชื่อฟังก์ชั่น และให้รับ pointer เข้ามา 2 ตัว
{
int z=*x; \\ประกาศตัวแปรใหม่มาเก็บค่าที่ x ชี้อยู่ไว้(ตรงนี้ให้เก็บค่าตัวใดตัวหนึ่ง y ก็ได้)
*x=*y; \\ให้ตัว x ที่เราเก็บค่าไปแล้ว ชี้ไปหาตัวที่ y ชี้อยู่ ตรงนี้เราจะได้ว่า x=2 y=2 z=1
*y=z; \\ให้ y ชี้ไปหาตัวที่ z ชี้อยู่ ดังนั้นจะได้ x=2 y=1 z=1
}
int main()
{
int a,b;
scanf("%d %d",&a,&b); \\สมมุติผมป้อน 1 2 ตามลำดับ
printf("Before swap : %d %d\n",a,b);
swap(&a,&b); \\เรียกใช้ฟังก์ชั่น swap
printf("After swap : %d %d",a,b);
return 0;
}
Run program
1 2 \\สมมุติป้อน 1 2
Before swap : 1 2
After swap : 2 1
ผิดพลาดประการได้ตักเตือนหรือสั่งสอนกันได้นะครับ ผมยังด้อยความรุ้อีกเยอะครับ ขออภัยมา ณ ที่นี้ด้วยครับ ขอบคุณครับ ..