C++里的&

2019-07-20  本文已影响0人  DrunkPian0
  1. 举个vector的例子,相对于Java,注意两点;
    第一,对象不需要new
    第二,如果不加&,默认会重新申请一块内存拷贝进去。

    如果不加&,vec2是不是相当于深拷贝list[0]到vec2里去
  2. 举一个交换的例子:


#include<iostream>
using namespace std;
 
void swap(int a, int b)//a,b不改变,因为a,b的生命周期只在swap函数内,结束swap后a,b就消失,不改变实参
{
    int c = 0;
    c = a;
    a = b;
    b = c;
}
 
void swap1(int *a, int *b)//使用指针,交换地址实现数字变换
{
    int c = 0;
    c = *a;
    *a = *b;
    *b = c;
}
 
void swap2(int& a, int& b)//使用引用,a,b是实参的别名,相当于对实参的调用
{
    int c = 0;
    c = a;
    a = b;
    b = c;
}
 

ref:
https://www.tlanyan.me/and-operator-in-cpp/
https://blog.csdn.net/qq_38386991/article/details/82719171

上一篇下一篇

猜你喜欢

热点阅读