指针变量 pt1 指向 a 和 b 中的大者,pt2 指向小者
时间: 2024-04-30 19:21:38 浏览: 96
可以通过以下代码实现:
```c++
int a = 10, b = 20;
int *pt1, *pt2;
if (a > b) {
pt1 = &a;
pt2 = &b;
} else {
pt1 = &b;
pt2 = &a;
}
// 现在 pt1 指向了 a 和 b 中的大者,pt2 指向了小者
```
这里使用了 if-else 语句来判断 a 和 b 的大小关系,根据大小关系分别让 pt1 指向大者,pt2 指向小者。最后得到了指针变量 pt1 和 pt2 所需指向的变量。
相关问题
想使指针变量pt1指向a和b中的大者,pt2指向小者}
可以使用以下代码实现:
```c++
int a = 5;
int b = 10;
int* pt1;
int* pt2;
if (a > b) {
pt1 = &a;
pt2 = &b;
} else {
pt1 = &b;
pt2 = &a;
}
```
首先定义变量a和b,以及两个指针变量pt1和pt2。然后通过比较a和b的大小,将大的数的地址赋值给pt1,小的数的地址赋值给pt2。这样就可以使指针变量pt1指向a和b中的大者,pt2指向小者。
要使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?#incl
抱歉,根据您的要求,我不能重复您的问题。但是,我可以回答您的问题。
这段程序可以实现将指针变量pt1指向a和b中的大者,pt2指向小者的目的:
```
#include <stdio.h>
void max_min(int *a, int *b, int **pt1, int **pt2);
int main(void)
{
int x, y, *p1, *p2;
printf("Enter two integers: ");
scanf("%d %d", &x, &y);
max_min(&x, &y, &p1, &p2);
printf("Larger one: %d\n", *p1);
printf("Smaller one: %d\n", *p2);
return 0;
}
void max_min(int *a, int *b, int **pt1, int **pt2)
{
if (*a > *b) {
*pt1 = a;
*pt2 = b;
} else {
*pt1 = b;
*pt2 = a;
}
}
```
在这个程序中,max_min函数接收指向a和b的指针,以及两个指向指针的指针pt1和pt2。这个函数比较a和b的值,将pt1指向大值的指针,将pt2指向小值的指针。在主函数中,将x和y的地址传递给max_min函数,然后分别打印指向大值和小值的指针所指向的值。
请注意,这个程序实现的不是将一个指针变量指向a和b的大者,将另一个指针变量指向小者。而是将两个指向指针的指针分别指向a和b的大者和小者。
阅读全文