概念
指针是指向某个变量地址的一个变量。引用是某个变量的一个别名。
指针可以不初始化,值可以为空。引用必须初始化,值不可以为空。
指针初始化后值可以改变。引用的值自始至终不可以改变。
指针的值在运行时确定。引用的值在编译时确定。
指针不是类型安全的。引用是类型安全的。
使用
指针需要解引用(*)。引用使用时无需解引用。
指针需要判空。而引用不需要。
C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。
值传递
void Func1(int x) { x = x + 10; } int n = 0; Func1(n); cout << "n = " << n << endl;// n = 0
指针传递
void Func2(int *x) { (* x) = (* x) + 10; } int n = 0; Func2(&n); cout << "n = " << n << endl; // n = 10
引用传递
void Func3(int &x) { x = x + 10; } int n = 0; Func3(n); cout << "n = " << n << endl; // n = 10
运算符
点运算符,用于访问类、结构体和共用体的成员。
对于类指针或结构体指针,需要先解引用,再使用点运算符。
(*p).member
为了直观方便,约定箭头运算符同义。
p->member
所以,对于访问成员
箭头(->)左边必须为指针。
点号(.)左边必须为实体(或者实体的引用)。
Loading Comments...