网站管理系统制作,做服装设计兼职的网站,邯郸营销网站建设,塑胶原料东莞网站建设技术支持学了一年C今天出了一个大岔子#xff0c;因为太久没有做链表类型题目了#xff0c;并且STL用惯了今天遇到一题#xff0c;写的时候发现完全不对劲#xff0c;搞慌了#xff0c;首先我们看题目 2. 两数相加 再看我第一次的解答#xff0c;先不论结果对不对 错的行为有很多…学了一年C今天出了一个大岔子因为太久没有做链表类型题目了并且STL用惯了今天遇到一题写的时候发现完全不对劲搞慌了首先我们看题目 2. 两数相加 再看我第一次的解答先不论结果对不对 错的行为有很多比如我认为两个节点相连就是一个链表 理没错我忘了第一个节点要new空间
在写题的过程中突然忘了什么时候用. 什么时候用-平常用class用习惯了顺手了这种情况还突然懵了
那么什么时候用. 什么时候用-呢
在 C 中.和-都是用于访问对象成员的操作符但它们的使用场景有所不同
.操作符
用于直接访问对象的成员当你有一个具体的对象实例并且要访问该对象的成员变量或成员函数时使用.操作符。例如如果你有一个类Person其中包含成员变量name和成员函数sayHello()可以这样使用
#include iostream
#include stringclass Person {
public:std::string name;void sayHello() {std::cout Hello, my name is name std::endl;}
};int main() {Person p;p.name Alice; // 使用.操作符访问成员变量p.sayHello(); // 使用.操作符访问成员函数return 0;
}
用于访问结构体或共用体的成员在 C 语言和 C 中对于结构体和共用体类型的变量也使用.操作符来访问其成员。
-操作符
用于通过指针访问对象的成员当你有一个指向对象的指针时需要使用-操作符来访问对象的成员。例如
#include iostream
#include stringclass Person {
public:std::string name;void sayHello() {std::cout Hello, my name is name std::endl;}
};int main() {Person* p new Person;p-name Bob; // 使用-操作符访问成员变量p-sayHello(); // 使用-操作符访问成员函数delete p;return 0;
}
在链表等数据结构中使用在处理链表等数据结构时通常会使用指针来遍历链表节点此时就会使用-操作符来访问节点中的成员。例如有一个链表节点结构体ListNode包含数据成员data和指向下一个节点的指针next可以这样使用
#include iostreamstruct ListNode {int data;ListNode* next;
};int main() {ListNode* head new ListNode;head-data 1;head-next new ListNode;head-next-data 2;head-next-next nullptr;// 遍历链表并输出数据ListNode* p head;while (p! nullptr) {std::cout p-data ;p p-next;}// 释放链表内存p head;ListNode* next;while (p! nullptr) {next p-next;delete p;p next;}return 0;
} 那么本题的正确答案