我可以为C中的变量传递多个值吗?
按照下面的示例,这或多或少是我所说的。
int mage;//Normal variable create OK
int mage{int hp, int mp}
我现在正在学习C,我想制作一个基于RPG的文本,我不希望创建基于世界的最好和最美丽的RPG文本,但它只是学习。
如果没有人在这里理解我的问题,那就是简历:创建一个变量并为此变量传递2个或更多值。
答案 0 :(得分:2)
是的,C支持允许您定义将其他类型的值组合在一起的新类型的结构。使用关键字struct
并提供名称来声明新的结构类型。然后,新类型的名称为struct
,后跟该名称。
例如:
struct character
{
int hp;
int mp;
};
struct character mage = { 42, 4711 };
最后一行创建一个名为mage
且类型为struct character
的变量,并将mage.hp
初始化为42
,将mage.mp
初始化为4711
。< / p>
以下是访问变量hp
的字段mage
的方式:
printf("The HP of the mage is %d\n", mage.hp);
答案 1 :(得分:1)
定义为:
typedef struct {
int hp;
int mp;
} mage;
用作:
mage m;
访问为:
m.hp = 2;
m.mp = 3;
答案 2 :(得分:1)
如果您想将多个值分组到单个变量中,最简单的方法是使用struct
。
这允许您对值进行逻辑分组。
在您的示例中,您可以执行以下操作:
struct SAttribute {
int current;
int maximum;
};
typedef struct SAttribute Attribute;
struct SCharacter {
Attribute health;
Attribute mana;
};
typedef struct SCharacter Character;
请注意,typedef
是可选的,只是为了避免不得不一遍又一遍地写struct
。
在您的实际程序中,您可以像这样使用它们:
Character mage;
mage.health.current = mage.health.maximum = 100;
// damage the mage
mage.health.current -= 5;
// is the mage dead?
if (mage.health.current <= 0)
printf("The mage is dead.");
答案 3 :(得分:1)
我不确定是否可以将多个值传递给变量,但我建议您创建一个 struct
typedef struct mage mage;
// define a struct
struct mage {
int hp;
int mp;
};
struct mage m = {100, 50};
// now we can access the values
m.hp
m.mp