我正在读一本叫做《21天自学C语言》的书(我已经学会了Java和c#,所以我正在以更快的速度前进)。我正在阅读关于指针的章节,->(箭头)操作符没有解释就出现了。我认为它是用来调用成员和函数的(类似于。(点)操作符,但用于指针而不是成员)。但我不完全确定。

我能得到一个解释和一个代码样本吗?


当前回答

Dot是一个解引用操作符,用于连接结构的特定记录的结构变量。 例如:

struct student
    {
      int s.no;
      Char name [];
      int age;
    } s1,s2;

main()
    {
      s1.name;
      s2.name;
    }

这样,我们就可以使用点运算符来访问结构变量

其他回答

Dot是一个解引用操作符,用于连接结构的特定记录的结构变量。 例如:

struct student
    {
      int s.no;
      Char name [];
      int age;
    } s1,s2;

main()
    {
      s1.name;
      s2.name;
    }

这样,我们就可以使用点运算符来访问结构变量

struct Node {
    int i;
    int j;
};
struct Node a, *p = &a;

在这里要访问i和j的值,我们可以使用变量a和指针p,如下所示:a.i, (*p)。I和p-> I都是一样的。

在这里。是“直接选择器”,->是“间接选择器”。

Foo ->bar只是(* Foo).bar的简写。这就是它的全部。

A ->b是(* A)的缩写。B(对于函数也是一样:a-> B()是(*a). B()的缩写)。

是的,就是这样。

它只是点版本,当你想访问一个结构/类的元素是一个指针,而不是一个引用。

struct foo
{
  int x;
  float y;
};

struct foo var;
struct foo* pvar;
pvar = malloc(sizeof(struct foo));

var.x = 5;
(&var)->y = 14.3;
pvar->y = 22.4;
(*pvar).x = 6;

就是这样!