结构的指针符号是否具有访问元素的特定样式?

时间:2015-11-16 12:01:30

标签: c pointers data-structures specifications

struct b
{
     int c;
};

struct a
{
  struct b d[10][10];
}*e;


for(i=0;i<10;i++)
{
    e->d[i][0].c=11;
    //(*(*(d+i)+0)) will give you the element at that location
    e->(*(*(d+i)+0)).c=22;
    //(*(d+i)+0)-> will give us pointer to that particular element. 
    e->(*(d+i)+0)->c=33; 
}
for循环中的

第一个表示法工作正常,但其他两个表示法显示错误

  

错误:预期字段名称

如果我们仅使用结构b,则两个符号可以正常工作

struct b d[10][10];

为什么?是否有任何规范,例如我们不应该使用&#39;(&#39;就在&#39; - &gt;&#39;?

1 个答案:

答案 0 :(得分:4)

这些行应该是什么意思?

e->(*(*(d+i)+0)).c=22;
e->(*(d+i)+0)->c=33; 

->之后唯一有效的令牌是字段名称。在这种情况下,d

我想,你想要这样的东西:

(*(*(e->d+i)+0)).c=22;
(*(e->d+i)+0)->c=33;