เรารู้ว่าฟังก์ชันสามารถเรียกใช้ตามค่าและเรียกใช้โดยการอ้างอิงได้
- หากพารามิเตอร์จริงไม่ควรเปลี่ยนในฟังก์ชันที่เรียก ให้ส่งผ่านค่าพารามิเตอร์
- หากค่าของพารามิเตอร์จริงควรเปลี่ยนในฟังก์ชันที่เรียก ให้ใช้การอ้างอิงแบบส่งผ่าน
- หากฟังก์ชันต้องส่งคืนค่ามากกว่าหนึ่งค่า ให้คืนค่าเหล่านี้ทางอ้อมโดยใช้การเรียกโดยอ้างอิง
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับการสาธิตการคืนค่าหลายค่า -
#include<stdio.h>
void main() {
void areaperi(int,int*,int*);
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);
}
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
หมายเหตุ
- พอยน์เตอร์มีประเภทที่เกี่ยวข้องกัน สิ่งเหล่านี้ไม่ได้เป็นเพียงประเภทตัวชี้ แต่เป็นตัวชี้ไปยังประเภทเฉพาะ
- ขนาดของพอยน์เตอร์ทั้งหมดเท่ากัน ซึ่งเท่ากับขนาดบน int
- ตัวชี้ทุกตัวเก็บที่อยู่ของตำแหน่งหน่วยความจำหนึ่งแห่งในคอมพิวเตอร์ แต่ขนาดของตัวแปรที่ตัวชี้อ้างอิงอาจแตกต่างกัน