c++对象
在 C/C 中如果你已经有了一个指针门牌号想要通过这个指针获取它所指向的实际数据房间里的内容你需要用到 *** 的另一种用法解引用Dereference。如果在代码执行阶段将 * 放在指针变量的前面它的动作就像是“用钥匙开门”。1. 技术操作方式假设 ListNode 的结构定义如下Cstruct ListNode { int val; // 存放实际的数据比如数字 ListNode *next; // 存放下一个节点的地址 };如果你有一个指针 ListNode *you headA;要获取里面的 val有两种写法写法一使用 * 解引用Cint myValue (*you).val;you 是内存地址。*you 就是顺着地址找过去把那个节点实体完整地取出来。.val 则是从这个实体中拿出具体的属性 val。(注意必须要加括号因为 . 的优先级比 * 高)写法二使用 - 简写最常用Cint myValue you-val;因为每次写 (*you).val 太麻烦了C/C 发明了 - 这个箭头符号。它的底层原理完全一样就是“先解引用再取属性”的缩写。2. 结合生活隐喻you指针你手里拿着一张写着“爱丁堡大街 100 号”的纸条地址。这张纸条本身没有温度也没有故事。*解引用你按照纸条上的地址找过去推开那扇门解引用动作。(*you).val获取值你推开门后看到了房间里真真实实存在的那个人、那段回忆具体的数值。总结来说定义时的 * 是在宣告“我是一个向导”而使用时的 * 则是“到达目的地并掀开面纱”。要想得到 val就是用 * 这个动作去触碰那个真实的节点。