1

我试图围绕指针、引用和地址进行思考,但每次我认为我得到它时都会出现一些意想不到的东西。

在这个例子中,为什么我们不需要取消引用结构来设置一个值?

// pointer_tet.cpp
 #include <iostream>
struct example
{
    char name[20];
    int number;
};
int main()
{
   using namespace std;
   example anExample = {"Test", 5};
   example * pt = &anExample;
   pt->number = 6;
   cout << pt->number << endl;

   int anotherExample = 5;
   int * pd = &anotherExample;
   *pd = 6;
   cout << *pd << endl;

   return 0;
}

谢谢!

编辑:谢谢您的回答!让我感到困惑的是无法设置 *pt.number = 6。

4

2 回答 2

8

正在取消引用pt. 你正在做:

pt->number = 6;

这相当于:

(*pt).number = 6;

->运算符提供了一种通过指针访问成员的便捷方式。

于 2013-03-13T20:05:14.553 回答
0

你可以做

anExample.number = 6;

或者

(*pt).number = 6;

阅读 cplusplus.com 指针教程可能会有所帮助。

于 2013-03-13T20:10:55.843 回答