ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【C++系列】指针对象和对象指针的区别 [打印本页]

作者: 三尺非寒    时间: 2024-6-5 22:37
标题: 【C++系列】指针对象和对象指针的区别
在 ListNode dummy(0);ListNode* cur = &dummy; 中,& 是取地址运算符,用来获取变量 dummy 的地址。详细如下:
在 ListNode* dummy = new ListNode(0); ListNode* cur = dummy; 中,dummy 是链表指针。详细如下:
为什么利用 &dummy?

利用 &dummy 重要是为了简化链表的操纵。详细来说:
区别

优缺点

在栈上分配内存

优点
缺点
在堆上分配内存

优点
缺点
在 C++ 中,. 和 -> 操纵符用于访问对象的成员:
区别

详细示例

栈上分配对象
  1. ListNode dummy(0);       // dummy 是一个对象
  2. ListNode* cur = &dummy;  // cur 是指向 dummy 的指针
  3. cur->next = new ListNode(1);  // 通过 cur 指针访问 next 成员
  4. ListNode* head = dummy.next;  // 直接通过对象 dummy 访问 next 成员
复制代码
在这个例子中:
堆上分配对象
  1. ListNode* dummy = new ListNode(0);  // dummy 是一个指向 ListNode 对象的指针
  2. ListNode* cur = dummy;  // cur 和 dummy 都是指向同一对象的指针
  3. cur->next = new ListNode(1);  // 通过 cur 指针访问 next 成员
  4. ListNode* head = dummy->next;  // 通过 dummy 指针访问 next 成员
复制代码
在这个例子中:
总结

在利用栈上分配的对象时,利用 . 操纵符访问成员,因为我们直接处理的是对象本身。而在利用堆上分配的对象时,利用 -> 操纵符访问成员,因为我们处理的是指向对象的指针。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4