//***** 指针 ***** void test1() { int i = 100; int *p = NULL; // p = NULL 为空指针,为安全起见,指针初始化一定要初始化为空指针 p = &i; std::cout << "i的地址:" << &i << std::endl; std::cout << "p保存的地址:" << p << std::endl; } //***** 指针自身的地址、指针保存的地址和指针指向的数值 ***** void test2() { int i = 100; int *p = NULL; p = &i; std::cout << "指针p自身的地址:" << &p << std::endl; // 指针自身的地址 std::cout << "指针p保存的地址:" << p << std::endl; // 指针保存的地址 std::cout << "指针p指向的数值:" << *p << std::endl; // 指针指向的数值 /* 为什么要通过指针间接操作数据: 1、处理堆中存放的大型数据 2、快速访问类的成员数据和函数 3、以别名的方式向函数传递参数 */ }