用 (.) 或 → 运算符在 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.member
和 ptr_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
。所以 ->
使代码更易于阅读。
伙计们,我对 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.member
和 ptr_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
。所以 ->
使代码更易于阅读。