C和C++中引用
C的指针和C++中引用和函数参数类型
如果你说的是函数的形参,那么
1 | void foo(int ptr); |
通过下面代码可以更清楚理解两者区别1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main() {
int x = 42;
int* px = &x; // px是指向x的指针
int** ppx = &px; // ppx是指向指针px的指针
std::cout << "&x: " << &x << std::endl;
std::cout << "x: " << x << std::endl;
std::cout << "px: " << px << std::endl;
std::cout << "*px: " << *px << std::endl; // 解引用指针px,获取x的值
std::cout << "**ppx: " << **ppx << std::endl; // 解引用指向指针px的指针,获取x的值
int& rx = x; // rx是x的引用
int* prx = ℞ // prx是指向引用rx的指针
std::cout << "rx: " << rx << std::endl;
std::cout << "*prx: " << *prx << std::endl; // 解引用指针prx,获取rx的值
std::cout << "&*prx: " << &*prx << std::endl; // 获取指针prx的地址
return 0;
}
在C++里面,能不用指针都应该尽量避免,STL里面就大量使用引用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hiyoung'blog!