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

就是说,每个函数对它的改变只限于函数作用域内... 就是说,每个函数对它的改变只限于函数作用域内 展开
 我来答
来自海印寺芳香袭人 的啄木鸟
推荐于2016-07-15 · TA获得超过2439个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:435万
展开全部
你定义的时候用static
比如
static int a = 8;
但是定义了static之后就不能改变它的值
要想在函数内部改变它就再定义一个数据,使它等于全局变量
比如
void func(void)
{
int b = a; //这里你得到的肯定是a的最初值
这时候你随便去改变b的值都没关系。a还是a;
}
更多追问追答
追问
哎呀,你一说,概念有点像起来了,但是我并不想多定义变量哪怕是在函数里,仅仅利用一个全局的变量,函数对它的改变只限于函数里。我只想问下c里存在这样功能实现方式?
追答
c只能这样
你想改变全局变量的值右局限于函数内
那只能是先把初始值记录下来,到最后再给它赋值回去。
但是我认为这还不如再定义一个变量将值拷贝过来来的合适呢?

这是语言的局限性
4083208
2011-10-31
知道答主
回答量:24
采纳率:0%
帮助的人:9.2万
展开全部
#include <stdio.h>

int a = 4;
int b = 3; //全局变量从定义点开始到函数结束有效。

float (int a, int b)
{
........
}

void main()
{
....................
}
追问
不是这样的哈   你没理解我意思啊
追答
不明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
junia_
2011-10-31
知道答主
回答量:6
采纳率:0%
帮助的人:9859
展开全部
那你就每个函数里 定义一个局部变量不就行了吗, 定义一个全局变量没什么意思啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qicaiwuya
2011-10-31 · TA获得超过4211个赞
知道小有建树答主
回答量:1462
采纳率:100%
帮助的人:1200万
展开全部
可以在函数内部定义一个相同名字的变量,不会冲突,也能达到你的要求。
更多追问追答
追问
我试过了,但是函数里又重新定义变量,这还是我想达到的要求
追答
你想达到什么要求啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
班丘晓桐0U
2011-10-31 · TA获得超过446个赞
知道小有建树答主
回答量:739
采纳率:0%
帮助的人:612万
展开全部
把全局变量作为函数的参数!
更多追问追答
追问
是可以, 但觉得这样函数看起来不干净利落
追答
呵呵!其实用全局变量就不太合适!不太符合模块化设计原则,建议你用一个全局常量好了,局部变量+全局常量可以解决你的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式