#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;但我也有错误。谢谢你们! :)
答案 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,这样你就可以很容易地看到你有指针的时候。