单片机C语言中的全局变量可以被修改吗

比如先定义了一个全局变量 int a=10; 然后如果在主函数里或是其他自定义函数里把a的值改变,比如是a=a+1; 那么如果在退出了这个函数后,a的值会变回原来的10吗,我意思是a值是会被永久性改变还是临时的改变?

定义了全局变量就表示在这个函数a都为10.如果在主函数里或是其他自定义函数把a的值改变,则a变为了局部变量,则主函数里或是其他自定义函数中的a会覆盖掉全局变量中的a,也就是说在主函数里或是其他自定义函数中的a只是临时变量,当函数运行完,这个函数中的a寿命就终止了。当退出了这个函数后,a的值恢复到全局变量的10,全局变量是伴随着整个程序的。最好还是自己写程序实验,这样印象深刻。追问

如果是这样,那我想要把一个变量,可以任意修改,改后不会恢复,全局都通用,可 以吗?有这种变量吗?

追答

那就是全局变量吧~改变全局变量的值就可以了。如果不想的话,还可以用指针,指向你想要的那个值得地方就ok了。

追问

你不是说全局变量被其他函数修改后,退出该函数后变量值会恢复成原来的吗?那我要怎么改才不会被恢复

追答

在外面声明了全局变量,函数内更改,函数的生命周期完了后就会恢复全局变量的值。所以,直接改全局变量就ok了。想要在函数内改了,外面又用不了,更改的值只在你的那个函数内有效,出了函数,那个临时变量就会消失的。函数内声明的变量值只在那个函数内有效。而全局变量对整个你编写的程序内有效

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-13
10只是初始值,每个函数都可以改变它的值。
全局变量就是整个程序里可以用的,既然是变量就是可以改变的,并且是改变后的值不会恢复到初始值。本回答被网友采纳
第2个回答  2013-07-12
既然是全局变量,最后以后被修改成10,只要不退出程序,这个全局变量就是10
第3个回答  2013-07-13
命名时赋予的值是初始化的值,后面的程序可以对其更改操作。且更改值在退出子程序后依然保留下来
第4个回答  2013-07-12
全局变量就是在函数的范围内值都是不会变的
相似回答