![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言中全局变量不能放在子函数里的while吗?
展开全部
子函数里定义不了全局变量,可以定义静态变量,子函数定义的普通变量在第二次进入子函数时普通变量的值是未初始化的(不管随不随机,直接用是不合理的),子函数的静态变量在第二次进入子函数时变量的值保持为上一次子函数执行后的值
追问
在函数句首定义的 那为什么 我定义一个全局变量 后 在后面的子函数里while里用到比如说i++ 他没有变化 而我试着在其他地方用 他可以变化 这可能不可能是电脑问题啊
追答
这代码 优先检查 while条件啊,while循环能不能进去
展开全部
所谓全局变量通俗的讲在整个程序中都能使用的变量,只需在程序开始处(一般头文件之后)声明一次即可。故答案是肯定的
追问
int i=0;
void main()
{
。。。。
}
linklist *find(linklist *l,int x)
{
linklist *p;
p=l;
while(p->next==NULL&&p->data!=x)
{
i++;
p=p->next;
}
return p;
}为什么i没有变化?
追答
先说全局变量这一块,显然i是全局变量,所以在查找函数中可以使用,不然就会说未声明变量,系统报错;再说程序这一块,在while条件中应该是p->next!=NULL吧,你再思考下吧!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,没有这样的说法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以放的,全局变量可以放在程序的任何位置
更多追问追答
追问
那为什么 我定义一个全局变量 后 在后面的子函数里while里用到 他没有变化 而我试着在其他地方用 他可以变化 这可能不可能是电脑问题啊
追答
把代码全部贴出来看下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询