作业帮 > 综合 > 作业

c 语言里怎么定义一个全局变量,使其在调用它的每个函数里都是最初的值?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/20 17:38:52
c 语言里怎么定义一个全局变量,使其在调用它的每个函数里都是最初的值?
就是说,每个函数对它的改变只限于函数作用域内
c 语言里怎么定义一个全局变量,使其在调用它的每个函数里都是最初的值?
你定义的时候用static
比如
static int a = 8;
但是定义了static之后就不能改变它的值
要想在函数内部改变它就再定义一个数据,使它等于全局变量
比如
void func(void)
{
int b = a; //这里你得到的肯定是a的最初值
这时候你随便去改变b的值都没关系.a还是a;
}
再问: 哎呀,你一说,概念有点像起来了,但是我并不想多定义变量哪怕是在函数里,仅仅利用一个全局的变量,函数对它的改变只限于函数里。我只想问下c里存在这样功能实现方式?
再答: c只能这样 你想改变全局变量的值右局限于函数内 那只能是先把初始值记录下来,到最后再给它赋值回去。 但是我认为这还不如再定义一个变量将值拷贝过来来的合适呢? 这是语言的局限性
再问: 程序小无所谓,如果调用的概率高每次定义变量不如使用一个划算, register变量呢?
再答: register 是为了提高效率,但是用register是有潜在威胁的,用多个register时候很可能部分被系统吃掉了