เรารู้ว่าฟังก์ชันสามารถเรียกใช้ตามค่าและเรียกใช้โดยการอ้างอิงได้
- หากพารามิเตอร์จริงไม่ควรเปลี่ยนในฟังก์ชันที่เรียก ให้ส่งผ่านค่าพารามิเตอร์
- หากค่าของพารามิเตอร์จริงควรเปลี่ยนในฟังก์ชันที่เรียก ให้ใช้การอ้างอิงแบบส่งผ่าน
- หากฟังก์ชันต้องส่งคืนค่ามากกว่าหนึ่งค่า ให้คืนค่าเหล่านี้ทางอ้อมโดยใช้การเรียกโดยอ้างอิง
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม 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
- ตัวชี้ทุกตัวเก็บที่อยู่ของตำแหน่งหน่วยความจำหนึ่งแห่งในคอมพิวเตอร์ แต่ขนาดของตัวแปรที่ตัวชี้อ้างอิงอาจแตกต่างกัน