void swap1(int *p,int *q) { int temp=*p; *p=*q; *q=temp; }
时间: 2023-03-22 08:02:08 浏览: 77
这是一个函数定义,函数名为swap1,接收两个指针类型的参数p和q,函数体内进行了指针所指的变量值的交换操作。交换的过程是将p指向的变量值存储在temp中,然后将q指向的变量值赋给p指向的变量,最后将temp中存储的值赋给q指向的变量。
相关问题
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
```
void swap(int *p1,int *p2) //定义swap函数 { int *temp; *temp=*p1; *p1=*p2; *p2=*temp; } 为什么这个不对
你提供的代码有一个问题,即`temp`指针没有被正确初始化。在执行`*temp = *p1;`这行代码时,由于`temp`指针没有指向任何有效的内存位置,会导致未定义的行为。
为了修正这个问题,你需要为`temp`指针分配内存空间,或者使用一个已经存在的变量来作为中间变量。下面是两种修正的方法:
1. 使用已经存在的变量作为中间变量:
```c
void swap(int *p1, int *p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
```
2. 分配内存空间给`temp`指针:
```c
void swap(int *p1, int *p2) {
int *temp = (int*)malloc(sizeof(int));
*temp = *p1;
*p1 = *p2;
*p2 = *temp;
free(temp); // 释放内存空间
}
```
这两种修正方法都可以正确地交换两个指针所指向的值。
希望能够帮助到你。如果还有其他问题,请随时提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)