wap( int* p1,int* p2 ) { int * p; *p = *p1; *p1 = *p2; *p2 = *p; }
时间: 2023-07-23 21:23:45 浏览: 136
浅析int*p[ ]与int(*p)[ ]的区别
这段代码存在问题,因为指针变量 `p` 没有初始化就被解引用赋值,这会导致未定义行为,可能会导致程序崩溃或者出现其他不可预期的结果。
正确的方式应该是使用一个新的临时变量来保存 `p1` 所指向的值,然后将 `p1` 指向 `p2` 所指向的值,最后再将 `p2` 指向临时变量的值。例如:
```
void swap(int* p1, int* p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
```
这样就可以正确地交换 `p1` 和 `p2` 所指向的值。
阅读全文