c++ - 仅使用指针和两个非指针变量进行交换?

标签 c++ pointers swap

<分区>

我想在没有任何函数调用或任何临时变量的情况下使用指针交换两个变量。

我当前的代码是:

void main()
{
  int a=1, b=2, *c;

  cout << a << b << endl;

  *c = a;
  a = b;
  b = *c;

  cout << a << b << endl;

  getch();
}

该代码适用于 Turbo C++,但不适用于 Visual Studio,而且我读到拥有未初始化的指针变量是不好的做法。

那么谁能告诉我需要对此代码进行哪些更改才能使其在 visual studio 上运行?如果有更好的方法请告诉。

谢谢..

最佳答案

您不能使用 c的值,直到您设置一些值。所以*c = a;是废话。你必须做 c = <something>首先。

关于c++ - 仅使用指针和两个非指针变量进行交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766242/

相关文章:

c# - 在 C# 中交替排序或重新排序列表

c++ - 在哪些情况下我们需要保护继承?

C++ 对 multiset::equal_range 给定值的操作

c++ - 引用函数 "int &foo();"是如何工作的?

c++ - 为 C++ 添加语法糖

c++ - 将 C++ 数组指针的过去末尾转换为迭代器是否合法?

pointers - 取消引用结构指针是否复制结构?

java - XOR 交换在所有情况下都等同于传统交换吗?

c++ - 为什么在 QSharedPointer 中使用窗口时会发生段错误?

java - 选择排序中的交换