C++中,我们将数据传递给函数有四种方式:指向非const数据的非const指针、指向const数据的非const指针、指向非const数据的const指针,指向const数据的const的指针,每种方式都具有不同的访问权限。

1 const修饰指针

1.1 指向非const数据的非const指针

形如

int* pNum;

指向非const数据的非const指针具有最大的访问权限,可以通过间接引用指针修改所指向的数据,也可以修改指针使其指向其他数据。

1.2 指向const数据的非const指针

形如

const int* pNum;

指向const数据的非const指针可以被修改以指向其他适合类型的数据,当时不能通过该指针修改它所指向的数据。

1.3 指向非const数据的const指针

形如

int* const pNum;

指向非const数据的const指针始终指向同一个内存位置,可以通过该指针修改这个位置上的数据,但不能修改指针所指向的内存位地址。

1.4 指向const数据的const指针

形如

const int* const pNum;

指向const数据的const指针具有最小的访问权限。此种类型的指针始终指向内存中的相同位置,并且不能通过该指针修改所指向内存位置的数据,也不能修改指针所指向的内存地址。