在C++中,&的作用取决于上下文。以下是一些基本规则来帮助判断&是作为取地址运算符还是作为引用符号:
1、作为取地址运算符:当&在一个已经存在的变量前面时,它是取地址运算符。例如: - int a = 10;
- int* p = &a; // &a 是取变量 a 的地址
复制代码
2、作为引用符号:当&在类型声明中使用时,它表示引用。例如: - int a = 10;
- int& ref = a; // ref 是 a 的引用
复制代码
3、在函数参数中:如果&在函数参数的类型声明中,那么它表示引用,这样函数可以修改传入参数的值。例如: - void foo(int& a) { // a 是一个引用参数
- a = 20;
- }
复制代码
4、在函数调用中:如果&在函数调用时用于参数,那么它是取地址运算符。例如: - void foo(int* a) { // a 是一个指针参数
- *a = 20;
- }
- int a = 10;
- foo(&a); // &a 是取变量 a 的地址
复制代码 |