您好,欢迎来到世旅网。
搜索
您的当前位置:首页C++ 中 & 的多种用法

C++ 中 & 的多种用法

来源:世旅网

int age = 30; // 定义int型变量
int *page = &age; // 定义int *指针page, 指向age

// 修改指针解引用来修改变量
*page = 50;
std::cout << *page << "," << age << std::endl;
int age = 30;
int &ref_age = age; // ref_age是age的引用,改变ref_age等同于改变age
void increment(int &num) {
    num++;
}
int z = 5;
increment(z); // z的值现在变为6

用法③:作为参数传递,在函数的参数列表中,使用&可以声明引用参数,这个函数体内形参发生变化实参也会随之改变

#include <iostream>

class MyClass {
public:
    // 成员变量m_ref是int的引用
    int &m_ref;

    // 构造函数接受一个int类型的引用参数,并用它初始化m_ref
    MyClass(int &ref) : m_ref(ref) {
        // 初始化列表中使用&来绑定传入的引用到成员m_ref
    }
    
    // 方法用于修改m_ref所引用的值
    void modifyReferencedValue(int newValue) {
        m_ref = newValue;
    }
};

int main() {
    int externalValue = 10;
    MyClass obj(externalValue); // 将externalValue的引用传递给MyClass的构造函数
    
    std::cout << "Before modification: " << externalValue << std::endl;
    obj.modifyReferencedValue(20); // 通过对象修改引用的值
    std::cout << "After modification: " << externalValue << std::endl; // 输出20,因为obj.m_ref和externalValue是同一个值的不同引用

    return 0;
}

用法④:在C++11及以后的版本中,可以在类的构造函数初始化列表中使用引用,以此来初始化类的引用类型成员变量。这样做可以让类的成员直接引用外部对象,从而实现共享状态或提供一种直接操作外部资源的方式。不过,需要注意的是,当成员变量是引用类型时,构造函数在创建对象时必须明确地初始化这个引用成员,且不能默认初始化

int &getRefToX() {
    static int x = 0;
    return x;
}

int main() {
    int &refX = getRefToX();
    refX = 10;
    std::cout << getRefToX(); // 输出10,因为refX修改了静态变量x的值
    return 0;
}

用法⑤:作为返回类型,函数也可以返回引用,允许函数直接修改外部变量或返回对象的引用以便连续修改

int a = 5; // 二进制表示为0101
int b = 3; // 二进制表示为0011
int c = a & b; // c的结果为1 (二进制0001)

用法⑥:位与运算符,在表达式中,当&两边都是整数时,它作为位与运算符,对两个操作数的每一位执行逻辑与操作

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务