使用传址方法实现两个整型变量数值交换。
时间: 2023-03-26 10:02:52 浏览: 75
可以使用以下代码实现:
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
int main(){
int x = 5, y = 10;
printf("交换前:x=%d, y=%d\n", x, y);
swap(&x, &y);
printf("交换后:x=%d, y=%d\n", x, y);
return ;
}
相关问题
题目1:不使用任何中间变量将变量a,b的值进行交换(要求:调用西数,指针传址方式;引用的方式实现)
可以使用以下代码实现:
void swap(int& a, int& b){
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
int main(){
int a = 1, b = 2;
swap(a, b);
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
这里使用了异或运算的性质,可以不用中间变量实现交换。
vector pushback 加入一个结构,是传值还是传址
当使用 `push_back()` 函数将一个结构体添加到 vector 中时,实际上是将这个结构体的副本(也就是值)添加到 vector 中。因此,如果你修改 vector 中的某个结构体元素,不会影响原始的结构体值。
如果你想要在 vector 中存储结构体的指针而不是结构体本身,那么你需要将结构体的地址传递给 `push_back()` 函数。这样,你就可以通过指针修改原始的结构体值。
下面是一个例子,演示了如何将结构体的指针添加到 vector 中:
```c++
#include <iostream>
#include <vector>
using namespace std;
struct Person {
string name;
int age;
};
int main() {
vector<Person*> people;
Person person1 = {"Alice", 20};
Person person2 = {"Bob", 25};
people.push_back(&person1);
people.push_back(&person2);
// 修改原始结构体的值
people[0]->age = 21;
// 输出 vector 中的元素
for (int i=0; i<people.size(); i++) {
cout << people[i]->name << " " << people[i]->age << endl;
}
return 0;
}
```
输出结果为:
```
Alice 21
Bob 25
```
可以看到,通过将结构体的指针添加到 vector 中,我们可以修改原始结构体的值。
相关推荐
![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)