这个问题有点傻,但我没办法解决。我想使用点表示法来访问结构的成员变量,尽可能保持一些杂乱无章的代码整洁。我希望我不会因为不想用传统的方式去做而受到责备。我想这样做:
类型定义结构{
内景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/

10-12 20:48