我们知道函数可以通过值传递和引用传递来调用。
- 如果实际参数在被调用函数中不应改变,则使用值传递。
- 如果实际参数的值在被调用函数中应改变,则使用引用传递。
- 如果函数需要返回多个值,可以通过引用传递来间接返回这些值。
示例
以下是演示如何返回多个值的C程序:
#include<stdio.h>
void main() {
void areaperi(int, float*, float*);
int r;
float a, p;
printf("请输入圆的半径: ");
scanf("%d", &r);
areaperi(r, &a, &p);
printf("面积=%f\n", a);
printf("周长=%f", p);
}
void areaperi(int x, float *p, float *q) {
*p = 3.14 * x * x;
*q = 2 * 3.14 * x;
}
输出
当执行上述程序时,将产生以下输出:
请输入圆的半径: 5
面积=78.500000
周长=31.400000
注意事项
- 指针有与之关联的类型。它们不仅仅是指针类型,而是指向特定类型的指针。
- 所有指针的大小相同,等于int的大小。
- 每个指针保存计算机中一个内存位置的地址,但指针所引用的变量的大小可以不同。