image.png
    image.png

    有了指针为什么还需要引用?

    image.png

    有了引用为什么还需要指针?
    image.png
    image.png

    1. #include <iostream>
    2. #include <assert.h>
    3. using namespace std;
    4. // 编写一个函数,输入两个int型变量a,b
    5. // 实现在函数内部将a,b的值进行交换。
    6. void swap(int& a, int& b)
    7. {
    8. int tmp = a;
    9. a = b;
    10. b = tmp;
    11. }
    12. void swap2(int* a, int* b)
    13. {
    14. int tmp = *a;
    15. *a = *b;
    16. *b = tmp;
    17. }
    18. int main()
    19. {
    20. //int x = 1, x2 = 3;
    21. //int& rx = x;
    22. //rx = 2;
    23. //cout << x << endl;
    24. //cout << rx << endl;
    25. //rx = x2;
    26. //cout << x << endl;
    27. //cout << rx << endl;
    28. // 交换变量的测试
    29. int a = 3, b = 4;
    30. swap(a, b);
    31. assert(a == 4 && b == 3);
    32. a = 3, b = 4;
    33. swap2(&a, &b);
    34. assert(a == 4 && b == 3);
    35. return 0;
    36. }

    C++中引用(&)的用法和应用实例