如何更改通过c中的引用将结构传递给函数

时间:2013-11-19 01:41:36

标签: c struct

#include <stdio.h>

struct player{

    int life;

};struct player info;

void name(struct player *info);

int main(void)
{

    info.life = 20;
    name(&info);

    printf(">>>>%d", info.life);
return 0;
}

void name(struct player *info)
{
    info.life = 20
}

嗨,这只是一个练习代码我试图通过引用将结构传递给函数,但是如何更改结构中int的值?当我尝试编译 info.life = 20;我得到一个错误,我做错了什么?我也尝试过 * info.life = 20;但我也有错误。谢谢你们! :)

2 个答案:

答案 0 :(得分:2)

下面:

void name(struct player *info)
{
    info.life = 20;
}

应为info->life。因为info是指针。

答案 1 :(得分:1)

我通常会输入我的结构以使其更具可读性。

typedef struct _Player
{
  int life;
} Player;

然后访问你的结构或传入它你会做:

void name(Player *pInfo)
{
  pInfo->life = 20;
}

我还为任何指针变量添加了一个p,这样你就可以很容易地看到你有指针的时候。