int main() {void swap(int*p1,int*p2); int a,b,c; int *pointer_1,*pointer_2,*pointer_3; printf("请输入:3个整数"); scanf("%d,%d,%d",&a, &b, &c); pointer_1=&a; pointer_2=&b; pointer_3=&c; if(a>b) swap(pointer_1,pointer_2); if(a>c) swap(pointer_1,pointer_3); if(b>c) swap(pointer_2,pointer_3); printf("顺序是:%d,%d,%d\n",a,b,c); return 0; } void swap(int*p1,int*p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; }有错吗
时间: 2024-04-07 21:32:22 浏览: 44
这段代码没有语法错误。它通过指针来实现了三个整数的排序,并且使用了一个名为 swap 的函数来交换两个指针所指向的值,实现了指针的传递。在 main 函数中,首先通过 scanf 函数获取了三个整数,并将它们分别赋值给指针 pointer_1、pointer_2 和 pointer_3。然后通过 if 语句来比较三个整数的大小关系,并进行交换,最后通过 printf 函数输出排序后的结果。
相关问题
void swap( int* p1,int* p2 )
### 回答1:
您好!以下是用中文回答您的问题:
这是一个交换两个整数变量值的函数,参数分别是两个整型指针。
函数代码如下:
void swap(int* p1, int* p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
函数使用指针作为参数,因为它需要修改变量的值。在函数内部,它将变量p1所指向的值存储在临时变量temp中,然后将p2所指向的值复制给p1所指向的值,最后将temp的值复制给p2所指向的值,从而完成了两个变量值的交换。
希望这能够帮到您!
### 回答2:
函数声明中的void swap( int* p1,int* p2 )表示定义了一个名为swap的函数,它需要两个int类型的指针p1和p2作为参数。这意味着,在使用这个swap函数之前,我们需要用正确的参数来调用它,这样才能正确地执行交换操作。
当我们在swap函数中使用这两个指针时,它实际上会交换它们所指向的值。对于指针p1和p2,swap函数首先通过使用临时变量将指针p1指向的值存储在临时变量temp中。然后,它将指针p2指向的值复制到指针p1指向的地址,即将p2指向的值赋值给p1指向的位置。最后,函数将在temp中存储的原始值复制到p2指向的地址,即将temp中的值赋值给p2指向的位置。
使用该函数可以轻松地实现对两个变量的交换操作,这对于排序和其他算法实现非常有用。我们可以将该函数用于任何需要交换两个变量的地方,只需将变量的地址传递给函数即可。
### 回答3:
void swap(int* p1, int* p2)是一个定义在C语言和C++中的函数,其功能是交换指针p1和p2所指向的两个整型变量的值。
首先,我们需要了解指针是什么。指针是一个变量,其存储的是内存地址。在C/C++中,我们可以用指针来访问内存中的数据,也可以通过指针来修改内存中的数据。
在swap函数中,p1和p2是两个指向整型变量的指针。通过*p1和*p2,我们可以访问和修改p1和p2所指向的变量的值。
在函数内部,我们首先定义一个中间变量temp来存储p1所指向的变量的值,然后将p1所指向的变量的值改为p2所指向的变量的值,最后将p2所指向的变量的值改为temp,即完成了两个变量的值的交换。
其中,符号*用于取出指针指向的地址中的值,指针变量与普通变量的区别在于它存储的是地址而不是值,因此要用*来获取它所指向的值;&符号用于获取变量的地址。
需要注意的是,调用swap函数时,传入的必须是两个整型变量的地址,而不能是变量本身。因此,我们使用&运算符来获取变量的地址,如下所示:
int a = 1, b = 2;
swap(&a, &b);
这样就可以将变量a和b的值交换了。
总之,void swap(int* p1, int* p2)是一个非常常用的函数。通过指针,我们可以在函数内部修改外部变量的值,从而实现各种功能。
void swap(int *p1,int *p2) { int *temp; *temp=*p1; *p1=*p2; *p2=*temp; }
以下是一个演示如何使用void swap(int *p1,int *p2)函数交换两个指针所指向的值的例子:
```c
#include <stdio.h>
void swap(int *p1, int *p2) {
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int num1 = 10;
int num2 = 20;
printf("交换前:num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2);
printf("交换后:num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
```
输出结果:
```
交换前:num1 = 10, num2 = 20
交换后:num1 = 20, num2 = 10
```
阅读全文