void fun(int *a, int *b) { int *k; k = a; a = b; b = k; }实现了什么
时间: 2024-05-05 15:22:37 浏览: 12
这个函数交换了两个指针变量的指向,但是并没有交换指针指向的内存空间中存储的数据。
具体来说,这个函数接收两个指向 int 类型的指针 a 和 b,然后对指针进行交换,将 a 指向 b 指向的内存地址,将 b 指向 a 指向的内存地址,但是并没有改变 a 和 b 指向的内存空间中的数据。
如果想要实现交换两个指针指向的内存空间中存储的数据,需要使用类似于下面的代码:
```c++
void fun(int *a, int *b) {
int k = *a;
*a = *b;
*b = k;
}
```
这个函数会交换 a 和 b 指向内存空间中存储的数据。
相关问题
void fun_b(int *x, int *y) {int *p; *x=*y;*y=*x; )
这是一个交换两个整型变量值的函数,函数名为fun_b,参数为两个指向整型变量的指针x和y。函数体内定义了一个指向整型变量的指针p,然后通过指针操作交换了x和y指向的变量的值。具体实现如下:
```c
void fun_b(int *x, int *y)
{
int *p;
p = x;
x = y;
y = p;
}
```
需要注意的是,函数内部的指针操作只是交换了指针本身的值,并没有交换指针所指向的变量的值。正确的实现方式应该是:
```c
void fun_b(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
```
void fun_b(int *x, int *y) { int *p; *x=*y;*y=*x;
这是一个交换两个整数值的函数,函数名为fun_b,函数参数为两个指向整型变量的指针x和y。函数体内定义了一个指向整型变量的指针p,然后将y指向的值赋给x指向的值,将x指向的值赋给y指向的值,实现了两个整数值的交换。
```c
void fun_b(int *x, int *y) {
int *p;
int temp;
temp = *x;
*x = *y;
*y = temp;
}
```