#include<stdio.h> void fun(int *a, int *b) { int *t; t=a;a=b;b=t; } void main( ) { int x=3, y=4; fun(&x, &y); printf("%d, %d", x, y);
时间: 2023-08-08 11:05:45 浏览: 521
这段代码的作用是交换变量x和y的值。但是代码有一个小错误,main函数的返回值类型应该是int而不是void。
正确的代码应该是这样的:
```
#include <stdio.h>
void fun(int *a, int *b) {
int *t;
t = a;
a = b;
b = t;
}
int main() {
int x = 3, y = 4;
fun(&x, &y);
printf("%d, %d", x, y);
return 0;
}
```
运行结果会输出 "3, 4",因为指针变量a和b在fun函数内部交换了指向的地址,但是并没有改变x和y的值。如果想要交换x和y的值,可以修改fun函数的实现,如下所示:
```
void fun(int *a, int *b) {
int t = *a;
*a = *b;
*b = t;
}
```
这样运行结果就会输出 "4, 3"。
相关问题
} 2、程序填空 #include<stdio.h> voidfun(inta[],intn) {inti,t;
#include <stdio.h>
void fun(int a[], int n) {
int i, t;
for (i = 0; i < n / 2; i++) {
t = a[i];
a[i] = a[n - 1 - i];
a[n - 1 - i] = t;
}
}
// 示例测试
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int i;
fun(arr, 5);
for (i = 0; i < 5; i++)
printf("%d ", arr[i]);
return 0;
}
#include<stdio.h> void fun(int* a, int* b) { int* t; t = a; a = b; b = t; } void main() { int x = 3, y = 4; fun(&x,&y); printf("%d,%d",x,y); }怎么交换x,y的值
可以在函数 fun 中改变指针所指向的变量的值,从而实现交换 x 和 y 的值。修改后的代码如下:
```
#include <stdio.h>
void fun(int* a,int* b){
int t;
t = *a;
*a = *b;
*b = t;
}
int main(){
int x = 3, y = 4;
fun(&x,&y);
printf("%d,%d",x,y);
return 0;
}
```
在 fun 函数中,我们通过操作指针所指向的变量,将变量 x 和 y 的值进行了交换。在 main 函数中,调用 fun 函数后,x 和 y 的值被交换,输出结果为 "4,3"。