编写程序,利用指针交换两个数据
时间: 2024-05-14 13:19:30 浏览: 73
很好,我可以回答这个问题。以下是一个简单的程序示例,可以通过指针交换两个整数:
```c++
#include <iostream>
using namespace std;
//函数声明
void swap(int* x, int* y);
//主函数
int main()
{
int a = 5, b = 10;
cout << "交换前:" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
//调用swap函数交换a和b的值
swap(&a, &b);
cout << "交换后:" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
return 0;
}
//函数定义
void swap(int* x, int* y)
{
int temp = *x;
*x = *y;
*y = temp;
}
```
在这个程序中,swap函数接受两个整型指针作为参数,并且将它们指向的值进行交换。在主函数中,定义了两个整型变量a和b,并且在调用swap函数之前输出了它们的值,然后再调用swap函数,之后再次输出a和b的值,以发现它们已经被交换了。
希望这个示例可以对你有所帮助,如果你有任何其他问题,可以随时问我。
相关问题
编写一个C语言程序,计算两个整数的和(利用指针) 使用二级指针交换两个整数的值
在C语言中,编写一个计算两个整数和并使用指针的程序可以这样做:
```c
#include <stdio.h>
void sum(int* a, int* b, int* result) {
*result = *a + *b; // 将a和b的值相加并将结果存入result
}
int main() {
int num1 = 5, num2 = 10;
int sumResult;
printf("Before sum: num1 = %d, num2 = %d\n", num1, num2);
// 定义指向num1、num2和sumResult的指针
int* pNum1 = &num1;
int* pNum2 = &num2;
int* pSumResult = &sumResult;
// 调用函数,传递指针
sum(pNum1, pNum2, pSumResult);
printf("After sum: Sum of num1 and num2 is %d\n", *pSumResult); // 输出结果
// 使用二级指针交换两个整数的值
int temp;
temp = *pNum1;
*pNum1 = *pNum2;
*pNum2 = temp;
printf("After swap: num1 = %d, num2 = %d\n", num1, num2); // 再次输出确认交换后的值
return 0;
}
```
在这个例子中,`sum()` 函数接受两个整数的地址作为参数,通过一级指针间接访问它们的值,并将结果存储在另一个指定的一级指针`result`中。然后,在`main()`函数中,我们展示了如何使用二级指针`temp`来进行数值的交换。
编写函数利用指针实现将两个数交换
下面是一个利用指针实现交换两个数的函数:
```c
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在函数中,我们定义了两个指向整型变量的指针 `a` 和 `b`,然后通过指针交换了它们所指向的值。这样,在函数执行完毕后,原来的 `a` 变量所存储的值就变成了 `b` 所存储的值,而原来的 `b` 变量所存储的值也变成了 `a` 所存储的值。下面是一个例子:
```c
int main() {
int x = 10, y = 20;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
在这个例子中,我们定义了两个变量 `x` 和 `y`,并初始化它们的值为 10 和 20。然后,我们调用 `swap` 函数,并将 `x` 和 `y` 的地址作为参数传递给函数。最后,我们输出交换后的结果。
阅读全文