这个问题有点傻,但我没办法解决。我想使用点表示法来访问结构的成员变量,尽可能保持一些杂乱无章的代码整洁。我希望我不会因为不想用传统的方式去做而受到责备。我想这样做:
类型定义结构{
内景a;
内景b;
}mystruct公司;
mystruct myStArray[5];
void doit (mystruct *i) {
// I want to do this:
i.a++;
i.b++;
// rather than this:
i->a++;
i->b++;
// or this
(*i).a++;
(*i).b++;
}
main () {
int x;
for (x=0;x<5;x++) {
doit(&myStArray[x]);
}
}
我试过这样做:
void doit (mystruct *u) {
mystruct i = *u;
但那是有用的。我知道它很简单,我以前也知道怎么做,但我已经生锈了,就是记不住/不知道怎么做。
最佳答案
通过指针访问结构成员的唯一选项是i->a
和(*i).a
。
在C++中,你可以写“cc>”,但是在C.是无效的。
可以复制结构:
mystruct j = *u;
j.a++;
如果需要,可以复制回来:
*u = j;
关于c - 解引用c结构指针以启用点表示法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25847596/