C - &PTR.Member 和 &(PTR.member) 之间的区别



我正在编写一个c程序,我不太确定如何将数据写入结构的特定成员。我正在使用一个结构指针,它使用 realloc(( 获取分配的内存并访问类似于数组的数据。每次添加元素时,数组都会动态调整大小。

我的问题是,将数据写入数组索引时,正确的方法是什么?

struct s{...some data members...}
struct s *s_array = NULL;
//allocate memory at some point using realloc()
printf("enter some data: ");
scanf("%d", &s[index].data_member);

scanf("%d", &(s[index].data_member));

数组索引运算符[]和成员访问运算符.的优先级都高于地址运算符&

因此&s[index].data_member获取数组元素成员的地址是有效的。&(s[index].data_member)中的括号是多余的,不需要。

最新更新