Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พอยน์เตอร์สำหรับการสื่อสารระหว่างฟังก์ชันใน C

ฟังก์ชันเรียกได้ 2 แบบ: Call by value และ Call by reference

  • ถ้าพารามิเตอร์จริงไม่ควรเปลี่ยนในฟังก์ชันที่เรียก ใช้ pass by value
  • ถ้าต้องการให้ค่าพารามิเตอร์จริงเปลี่ยน ใช้ pass by reference
  • ถ้าต้องการคืนค่ามากกว่า 1 ค่า ใช้ call by reference ส่งค่ากลับทางอ้อม

ตัวอย่างโค้ด

สาธิตการคืนค่าหลายค่าด้วยพอยน์เตอร์:

#include <stdio.h>

void areaperi(int, int*, int*);

int main() {
    int r;
    float a, p;
    printf("enter radius of circle:\n");
    scanf("%d", &r);
    areaperi(r, &a, &p);
    printf("area=%f\n", a);
    printf("perimeter=%f", p);
    return 0;
}

void areaperi(int x, int *p, int *q) {
    *p = 3.14 * x * x;
    *q = 2 * 3.14 * x;
}

ผลลัพธ์

Enter radius of circle: 5
Area=78.50000
Perimeter=31.40000

หมายเหตุ

  • พอยน์เตอร์มีชนิดข้อมูล (pointer to specific type)
  • ขนาดพอยน์เตอร์เท่ากันทุกตัว (เท่ากับ int)
  • พอยน์เตอร์เก็บที่อยู่หน่วยความจำ แต่ขนาดตัวแปรที่ชี้อาจต่างกัน