使用指针C++的好处是什么?

What is the benefit of using a pointer C++

本问题已经有最佳答案,请猛点这里访问。

我只是混淆了在C++上使用指针的部分。您可能会说,"指针显然是另一个变量的内存地址,并且在您的程序中有一些您需要它们的条件。"但我不是指一般的指针,我是指你用来"模拟"一个类的指针…我认为代码可以解释得更多:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
#include"Book.h"


int main() {
    Book book1;
    Book *bookPointer = &book1;


    book1.setBooksId(123);
    std::cout <<"BOOK ID:" << book1.getBookId() << std::endl;

    (*bookPointer).setBooksId(300);
    std::cout << (*bookPointer).getBookId() << std::endl;

    /*When usage of arrow member selection member, left is always a pointer.
      Same thing as above, but better practice!
      */


    bookPointer->setBooksId(100);
    std::cout <<"POINTER ARROW  :" << bookPointer->getBookId() << std::endl;
    return 0;
}

这里你看到我还有一个指针,叫做book pointer,它所做的一切都和book类book1的原始实例相同。我不明白……使用这个有什么好处?如果可以的话给我一个场景!谢谢你的帮助!!


根本没有"模拟"发生。book1也有地址,当执行book1.setBooksId(123);时,this指针被设置为book1的地址。没有区别。