#include <iostream>
using namespace std;
int* func(int& ref) {
ref = 100; // 修改引用所引用对象的值
int* ptr = &ref;
return ptr;
}
int& func_2(int* ptr) {
*ptr = 200; // 通过指针修改值
return *ptr; // 返回引用
}
int main()
{
int num = 10;
int& ref = num; // 定义一个引用,引用 num
int* ptr = &ref; // 定义一个指针,指向引用所引用的对象,即 num
cout << "num " << num << endl;//10
cout << "ref " << ref << endl;//10
cout << "*ptr " << *ptr << endl;//10
*ptr = 20; // 通过指针修改值
cout << "num " << num << endl;//20
cout << "ref " << ref << endl;//20
cout << "*ptr " << *ptr << endl;//20
int tmp = 30;
int *result= func(tmp);
cout << "tmp " << tmp << endl;//100
cout << "*result " << *result << endl;//100
int i32num = 150;
int& ret = func_2(&i32num); //传入指针
cout << "i32num " << i32num << endl;//200
cout << "ret " << ret << endl;//200
}