不允许在main外部更改struct成员变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不允许在main外部更改struct成员变量?相关的知识,希望对你有一定的参考价值。
我有以下代码
struct test
{
int i;
};
struct test a = {3};
a.i = 1; // error
int anumber = 10; // allowed
anumber = 3; // error
void main(void)
{
}
这会产生错误,但是如果我把它放在行中
a.i = 1;
在main内部,然后一切正常。
为什么不允许在函数外部更改struct成员变量?
答案
在C中,所有语句必须在函数内部出现。 a.i = 1;
是一个语句。当程序运行时,执行从main
函数开始,并且该函数中的语句按顺序执行。
struct test a = {3};
是一个声明,因为它声明了某些内容,没有任何执行。
以上是关于不允许在main外部更改struct成员变量?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 &mut self 允许借用 struct 成员,但不允许将 self 借用到不可变方法?
将 struct 成员放在单独的变量中以清理代码并帮助我了解代码的格式会如何不同