C++*&

int main() {
    int rats = 101;
    int &rodents = rats;
    int *p_rats = &rodents;
    cout << "rats     = " << rats << endl;
    cout << "rodents  = " << rodents << endl;
    cout << "*p_rats  = " << *p_rats << endl;
    cout << "p_rats   = " << p_rats << endl;
    cout << "&rodents = " << &rodents << endl;

    cout << "********************************" << endl;


    cout << "rats    = address =" << &rats << endl;
    cout << "rodents = address =" << &rodents << endl;
    cout << "p_rats  = address =" << &p_rats << endl;
}
rats     = 101
rodents  = 101
*p_rats  = 101
p_rats   = 0x16d5f7518
&rodents = 0x16d5f7518
********************************
rats    = address =0x16d5f7518
rodents = address =0x16d5f7518
p_rats  = address =0x16d5f7508

变量详解

1. int rats = 101;

  • 类型: int
  • 含义: 这是一个普通的整型变量,值为 101
  • 内存中: 它占用一块内存空间,存储的是整数值 101

2. int &rodents = rats;

  • 类型: int&(引用)
  • 含义:
    • rodents 是 rats 的一个别名(alias)。
    • 它不是另一个变量,而是 rats 的“另一个名字”。
    • 对 rodents 的任何操作都会影响到 rats,因为它们是同一个东西!

⚠️ 引用必须在声明时初始化,且不能更改指向。


3. int *p_rats = &rodents;

  • 类型: int*(指向整型的指针)
  • 含义:
    • p_rats 是一个指针变量,它保存的是 rodents 的地址。
    • 因为 rodents 是 rats 的别名,所以 &rodents 实际上就是 &rats
    • 所以 p_rats 指向的是 rats 这个变量。

✅ 输出结果解释(假设内存地址为示例)

表达式含义示例输出(可能不同)
rats整数变量的值101
rodentsrats 的别名,值相同101
*p_rats解引用指针,访问 p_rats 指向的内容101
p_rats指针本身的值,即 rats 的地址0x7ffee4b55a3c (示例地址)
&rodentsrodents 的地址,等价于 &rats0x7ffee4b55a3c

📌 关键点总结

表达式类型含义
ratsint一个整型变量,值为 101
rodentsint&rats 的别名,修改它等于修改 rats
p_ratsint*指针,指向 rodents,也就是指向 rats
*p_ratsint通过指针访问 rats 的值
&rodentsint*rodents 的地址,和 &rats 相同

💡 形象比喻

你可以把这理解成:

  • rats 是一个人的名字。
  • rodents 是他的小名,别人喊他小名也等于叫他。
  • p_rats 是一张写着这个人地址的纸条,拿着这张纸条可以找到他。

✅ 总结一句话:

rats 是原始变量,rodents 是它的别名(引用),p_rats 是指向这个变量的指针。三者最终都指向同一块内存中的值 101

如果你还想深入了解引用与指针的区别、引用作为函数参数的作用、空指针、野指针等内容,欢迎继续提问!我可以一步步带你深入 C++ 的世界 😎

代码模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值