指针和引用的区别
指针和引用是 C++ 中两个容易混淆但又有本质区别的概念。
首先,指针是一个变量,它存储的是另一个变量的地址。通过指针,可以间接访问所指向的变量。例如,我们可以这样定义一个指针:
int a = 10;
int *p = &a;
这里的p
就是一个指针,它存储了变量a
的地址。我们可以通过*p
来访问a
的值。指针可以在定义的时候不初始化,不过这样做可能会导致程序出现难以预料的错误。并且指针可以被重新赋值,指向不同的变量,例如:
int b = 20;
p = &b;
此时p
就指向了b
,而不再指向a
。
引用则是变量的别名。在定义引用的时候,必须同时初始化它,并且初始化之后就不能再引用其他的变量。例如:
int c = 30;
int &r = c;