用 (.) 或 → 运算符在 C 中构造

Struct in C with (.) or → operator

伙计们,我对 C 中的 -> 运算符有点困惑,有人可以向我解释它的工作原理和使用方法,以及点与 . operator 和 -> operator,这个operator -> 叫什么名字?

P.S。我非常需要理解这一点,要完成一个练习,请向我解释或给我 pdf、视频、教程或其他帮助我的东西,谢谢!

int main(int argc, char *argv[]) {

struct dashboard{
    char name[20];
    int idade;      
};

struct dashboard user;

char* n = strcpy(user.name, "anyname");
user.idade = 10;  

printf("Name is: %s and age is: %d", n, user.idade); 

return 0;}

如何使用 -> 实现相同的结构?

在 Whosebug 成员的帮助下回答了我的问题。

int main(int argc, char *argv[]) {

struct dashboard{
    char name[20];
    int idade;      
};

struct dashboard *user, u;

//Referencing pointer to memory address of u 
user = &u;  

char* n = strcpy(user->name, "anyname");
user->idade = 10;  

printf("Name is: %s, Age is: %d", n, user->idade); 

return 0;

}

Point用于结构体实例(对象),->是用指针访问结构体。例如。 obj.memberptr_obj->member.

点选择结构的成员。箭头取消对结构指针的引用,然后选择一个成员。

struct dashboard user, *up = &user;

. . . user.name . . .
. . . up->name . . .

是等效的(假设仍然指向用户)。

structure.field就是结构体上的字段,就这么简单。 structure->field 等同于 (*structure).field-> 当你想访问你拥有的指针指向的结构的字段时使用它。假设你有这样的结构:

 typedef struct example{
   int field1;
   int field2;
 } ExStructure;

ans 这个变量:

ExStructure a, *b;

你有一个结构和一个指向结构的指针。如果你想访问第一个结构的字段,你只需执行 X=a.field1。但是第二个是指向结构的指针,因此要访问该结构的字段 1,您需要执行 X=(*b).field1,这等同于 X=b->field1。所以 -> 使代码更易于阅读。