C++的指针和引用

Tags
C++
Date
Apr 25, 2021

概念

 
指针是指向某个变量地址的一个变量。引用是某个变量的一个别名。
 
指针可以不初始化,值可以为空。引用必须初始化,值不可以为空。
 
指针初始化后值可以改变。引用的值自始至终不可以改变。
 
指针的值在运行时确定。引用的值在编译时确定。
 
指针不是类型安全的。引用是类型安全的。
 

使用

 
指针需要解引用(*)。引用使用时无需解引用。
 
指针需要判空。而引用不需要。
 
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...