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;?
答案 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;