C++:无法使用简单的指针?

Joh*_*ohn 2 c++ pointers function

我道歉,因为这很简单,我正在使用我自己的XOR交换方法,并希望它比较参考和指针使用之间的速度差异(不要破坏它!)

我的XOR ptr功能如下:

 void xorSwapPtr (int *x, int *y) {
     if (x != y && x && y) {
         *x ^= *y;
         *y ^= *x;
         *x ^= *y;
     }
 }
Run Code Online (Sandbox Code Playgroud)

我把它复制到xorSwapRef函数,它只使用refs(int&x等)anywho:

我这样使用它但是我得到了错误 error: invalid conversion from ‘int’ to ‘int*’

int i,x,y = 0;
for(i=0;i<=200000;i++) {
    x = rand();
    y = rand(); 
    xorSwapPtr(x, y); //error here of course
}
Run Code Online (Sandbox Code Playgroud)

我如何使用带有整数的指针函数,比如ref?我只是想知道,因为我在书中找到的示例xor函数使用指针,因此我想测试.

Jam*_*lis 11

x并且yint; xorSwapPtr需要两个int*s,所以你需要传递和的地址,xy不是xy他们自己:

xorSwapPtr(&x, &y);
Run Code Online (Sandbox Code Playgroud)