源码

关于C中指针和引用的困惑


我有一堆像这样的代码:

#include 
using namespace std;

void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {

    int a;
    int b;
    a = 7;
    b = 5;
    swap(a, b);
    cout << a << b;

    return 0;
}

此代码执行交换过程,因为我完全想要交换2个数字

但是当我想要用户的两个数字时如下;

int a;
int b;
cin >> a;
cin >> b;
swap(a, b);
cout << a << b;

编译器给我一个关于整数到*整数错误的错误,这是预期的.为什么第一个代码进行了正确的交换,尽管我没有使用&操作符?

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/guanyuczhongzhizhenheyinyongdekunhuo.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 27, 2019 at 02:20 上午

热评文章