6个回答
展开全部
你定义的时候用static
比如
static int a = 8;
但是定义了static之后就不能改变它的值
要想在函数内部改变它就再定义一个数据,使它等于全局变量
比如
void func(void)
{
int b = a; //这里你得到的肯定是a的最初值
这时候你随便去改变b的值都没关系。a还是a;
}
比如
static int a = 8;
但是定义了static之后就不能改变它的值
要想在函数内部改变它就再定义一个数据,使它等于全局变量
比如
void func(void)
{
int b = a; //这里你得到的肯定是a的最初值
这时候你随便去改变b的值都没关系。a还是a;
}
更多追问追答
追问
哎呀,你一说,概念有点像起来了,但是我并不想多定义变量哪怕是在函数里,仅仅利用一个全局的变量,函数对它的改变只限于函数里。我只想问下c里存在这样功能实现方式?
追答
c只能这样
你想改变全局变量的值右局限于函数内
那只能是先把初始值记录下来,到最后再给它赋值回去。
但是我认为这还不如再定义一个变量将值拷贝过来来的合适呢?
这是语言的局限性
展开全部
#include <stdio.h>
int a = 4;
int b = 3; //全局变量从定义点开始到函数结束有效。
float (int a, int b)
{
........
}
void main()
{
....................
}
int a = 4;
int b = 3; //全局变量从定义点开始到函数结束有效。
float (int a, int b)
{
........
}
void main()
{
....................
}
追问
不是这样的哈 你没理解我意思啊
追答
不明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你就每个函数里 定义一个局部变量不就行了吗, 定义一个全局变量没什么意思啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在函数内部定义一个相同名字的变量,不会冲突,也能达到你的要求。
更多追问追答
追问
我试过了,但是函数里又重新定义变量,这还是我想达到的要求
追答
你想达到什么要求啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把全局变量作为函数的参数!
更多追问追答
追问
是可以, 但觉得这样函数看起来不干净利落
追答
呵呵!其实用全局变量就不太合适!不太符合模块化设计原则,建议你用一个全局常量好了,局部变量+全局常量可以解决你的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询