我所知晓的事实:
- C++ 中有三种类型的变量:变量、指针和引用。
- 变量是存储实际数据的内存的标签。
- 指针存储变量的地址。
- 引用是变量的别名。
我的问题:
- 根据观察,使用变量名和引用似乎可以互换使用。这是真的吗?
传递变量名和传递引用作为参数之间有什么区别?例如:
void func(int a); vs void func2(int& b);
非常感谢!
我所知晓的事实:
我的问题:
传递变量名和传递引用作为参数之间有什么区别?例如:
void func(int a); vs void func2(int& b);
非常感谢!
void func3( const int& b);
class K{
public:
void func() const; // see the const?
};
假设你有以下两个函数:
void addone(int a) {
a += 1;
}
void addone_bis(int &a) {
a += 1;
}
如果你在main
函数中调用第一个函数,那么变量的值只会在addone
函数中改变,而不会在主函数中改变;但是如果你调用addone_bis
函数,变量a
的值也会在main
函数中被改变。
int main() {
int test_a = 10;
int test_b = 11;
addone(test_a);
// test_a still equals 10.
addone_bis(test_b);
// test_b now equals 12.
}
我正确回答了你的问题吗?
a + 1
的结果没有写回到 a
。你需要使用 a += 1;
或者 ++a;
。 - zmb