为什么我们使用点/箭头操作符来访问c中的结构变量

为什么我们使用点/箭头操作符来访问c中的结构变量,c,structure,C,Structure,我不知道我们为什么用这个来访问变量。有什么标准吗?如果有,它们是什么 #include <stdio.h> struct st { int i; char ch; } s; int main() { s.i = 10; printf("%d\n", s.i); } #包括 结构街{ int i; char ch; }s; int main(){ s、 i=10; printf(“%d\n”,s.i.); } 点运算符和箭头运算符不同: 点运算符采用结构的属性。 箭头

我不知道我们为什么用这个来访问变量。有什么标准吗?如果有,它们是什么

#include <stdio.h>
struct st {
  int i;
  char ch;
} s;
int main() {
  s.i = 10;
  printf("%d\n", s.i);
}
#包括
结构街{
int i;
char ch;
}s;
int main(){
s、 i=10;
printf(“%d\n”,s.i.);
}

点运算符和箭头运算符不同:

点运算符采用结构的属性。
箭头操作符获取结构的属性,您使用的指针引用该属性

These two lines are the same thing:
(*(*(*a).b).c).d

a->b->c->d

它看起来更实用,也更易于查看,否则您必须使用顶部的一个看起来很难阅读的操作符,因此我们使用->操作符,因为它更简单。

因为这就是语言的设计方式。标准是,谢谢你,罗伯特·哈维。以前我忘了在标准图书馆登记,这不是“标准图书馆”的问题:它是语言;不仅C使用点来访问成员。关于箭,一个角色本该被选中,但也许他们已经用完了。。。无论如何,箭头很好。我的疑问是为什么我们必须使用点/箭头运算符来访问a的值variable@UssrSankar阅读一些关于结构的知识。如果你理解了它们为什么有用,你就会理解更多的东西。因为结构很像一种类型,比如(int,double,float),这意味着当你创建一个结构,并且有两个值,比如int number;字符字母;除非创建结构的实例并为这些值分配内存,否则计算机不会为这2个值分配内存。