利用指针比较3个数的大小,用max函数
时间: 2024-12-16 16:23:24 浏览: 10
在C语言中,你可以使用指针来比较三个整数的大小,并找到它们的最大值。假设你有三个整数变量a、b和c,对应的指针分别是p1、p2和p3,你可以这样做:
```c
#include <stdio.h>
int *p1 = &a;
int *p2 = &b;
int *p3 = &c;
// 定义一个函数接收两个指针作为参数,返回指向最大值的那个指针
int* max(int* num1, int* num2) {
if (*num1 > *num2)
return num1;
else
return num2;
}
// 使用递归实现同时比较三个数
int* find_max(int* arr[3]) {
if (arr[0] == arr[1])
return max(arr[0], arr[2]);
else
return max(max(arr[0], arr[1]), arr[2]);
}
int main() {
int a, b, c; // 假设已初始化了这三个数值
int *max_ptr = find_max(&a, &b, &c);
printf("The maximum number is %d\n", *max_ptr); // 输出最大值
return 0;
}
```
在这个例子中,`find_max`函数首先对比前两个数,然后把结果和第三个数比较,找出最终的最大值。注意,由于C语言的指针可以直接解引用得到其指向的值,所以`*max_ptr`就是实际的最大值。
阅读全文