如何用指针交换地址表示(c语言)
时间: 2023-06-24 21:07:50 浏览: 87
在C语言中,可以用指针变量来交换两个变量的地址。假设有两个变量a和b,代码如下:
```
int a = 10;
int b = 20;
int *p1 = &a;
int *p2 = &b;
```
要交换a和b的地址,可以使用一个临时指针变量t来保存其中一个地址,然后再交换两个指针变量的值,代码如下:
```
int *t;
t = p1;
p1 = p2;
p2 = t;
```
交换完成后,p1指向b的地址,p2指向a的地址。
相关问题
如何用指针交换二维数组地址表示(c语言)
在 C 语言中,我们可以通过指针交换二维数组地址表示。假设我们有两个二维数组 a 和 b,可以按照以下步骤交换它们的地址:
```c
int (*a)[n]; // 定义一个指向 n 个整数的指针数组 a
int (*b)[n]; // 定义另一个指向 n 个整数的指针数组 b
int tmp; // 用于临时存储数组地址的变量
// 将指针 a 和指针 b 的地址进行交换
tmp = (int)a;
a = b;
b = (int (*)[n])tmp; // 需要进行类型转换,将临时变量 tmp 转换为指向 n 个整数的指针类型
// 现在,a 和 b 指向的数组地址已经交换了
```
以上代码中,我们首先定义了两个指向 n 个整数的指针数组 a 和 b,并且定义了一个临时变量 tmp 来存储数组地址。然后,我们将指针 a 和指针 b 的地址进行交换,并且需要进行类型转换将临时变量 tmp 转换为指向 n 个整数的指针类型。最终,a 和 b 指向的数组地址已经交换了。
如何用指针交换一维数组地址表示(c语言)
在 C 语言中,可以使用指针来交换一维数组的地址表示。下面是一个示例代码:
```
void swap(int* arr1, int* arr2, int size) {
int* temp = arr1;
arr1 = arr2;
arr2 = temp;
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {6, 7, 8, 9, 10};
int size = sizeof(arr1) / sizeof(arr1[0]);
printf("Before swap:\n");
printf("arr1 address: %p\n", arr1);
printf("arr2 address: %p\n", arr2);
swap(arr1, arr2, size);
printf("After swap:\n");
printf("arr1 address: %p\n", arr1);
printf("arr2 address: %p\n", arr2);
return 0;
}
```
在这个示例中,`swap` 函数接受两个指向整型的指针 `arr1` 和 `arr2`,以及数组的大小 `size`。函数内部使用一个临时指针变量 `temp` 来交换 `arr1` 和 `arr2` 的值。然后,在 `main` 函数中,创建了两个整型数组 `arr1` 和 `arr2`,并且输出了它们的地址。接着,调用 `swap` 函数,并且再次输出数组的地址。可以看到,数组的地址已经被成功交换了。
相关推荐
![](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)