C语言,请教关于结构体数组的问题

图片说明
图中倒数第二行
scanf("%d",&G[i]);

结构体VNode中有两类元素int data 和ArcNode *firstarc
为什么“&G[i]”就是给结构体VNode中的data赋值?

&G[i]和&G[i].data的地址相同,有的编译器允许这样使用。

我想应该是这样:
VNode中有两类元素int data 和ArcNode ;前者是int型,后者是结构指针,scanf 里面又是%d,说明读入的是一个整形。相当于给G[i]进行初始化
由于只有一个元素,按照顺序,初始化前面的int data;并且刚好匹配。
这只是我的猜测,可能不准确哈!

同意ysuwood 的说法

&G[i]和&G[i].data的地址相同,有的编译器允许这样使用。同意ysuwood 的说法