指针的使用方式
#include <iostream>
int main(int argc, char const* argv[]) {
int a = 10, b = 100;
/* 指针的定义 */
int *p = NULL;
/* 指针的赋值 */
p = &a;
/* 通过指针修改指向的地址的值 */
*p = 20;
std::cout << "a: " << a << std::endl; /* 输出的a=20 */
/* 修改指针指向的位置 */
p = &b;
std::cout << "*p: " << *p << std::endl; /* 输出的值*p=100 */
return 0;
}
引用的使用方式
int main(int argc, char const* argv[]) {
int a = 10;
/* 引用的定义 */
int &p = a;
/* 通过引用修改值 */
p = 20;
std::cout << "a: " << a << std::endl; /* 输出的a=20 */;
return 0;
}
指针和引用的差异
- 指针是操作指向的地址,引用是起一个别名,引用的本质是指针常量
- 指针可以不初始化,只需要注意野指针问题。引用必须要初始化。
- 指针可以变更指向的地址。引用不可以变更引用,一旦初始化后就无法改变了。
- 指针修改指向地址的值
*p=10
。引用修改被引用的值p=10
。