[英]Accessing struct variables outside of function in C
我无法理解结构中变量的范围。 例如:
struct Class
{
const char *name;
int Hitdice, Str_Dice, Dex_Dice, Con_Dice, Int_dice, Wis_Dice, Cha_Dice, Skill_Points, level;
double BAB_Type;
struct Class *next_Class;
};
void setName()
{
struct Class setName;
setName.name = "thomas";
}
int main()
{
}
变量* name是否仅在void setName()中设置为“ thomas”? 我将如何做到这一点,如果我将值赋给struct变量,则该值可以全局访问。 如果要在int main()中打印出变量名,它将为空,如何使它打印出“托马斯”? 还是仅在setName()函数中可行?
变量
name
仅在void setName()
设置为"thomas"
?
是。 这就是局部变量如何工作的本质
如果我给结构变量赋值,该值可以全局访问,我该如何做到?
使struct Class setName;
通过在 setName
函数外部声明它来全局。 我建议也给它起一个不同的名字-比如theClass
。
您还应该更改setName
以同时使用名称和要在其上设置名称的struct Class
。
如果要在int
main()
打印出变量名,它将为空,如何使它打印出"thomas"
?
将声明移到setName()
函数之外后,您将可以从任何位置访问它。
struct Class {
const char *name;
int Hitdice, Str_Dice, Dex_Dice, Con_Dice, Int_dice, Wis_Dice, Cha_Dice, Skill_Points, level;
double BAB_Type;
struct Class *next_Class;
} theClass;
void setName(struct Class *myClass, const char* theName) {
myClass->name = theName;
}
int main() {
setName(&theClass, "thomas");
printf("%s\n", theClass.name);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.