C语言的函数能不能调用全局变量?

刚开始学C语言,问一下:C语言里面的函数能不能调用全局变量啊?举个例子:#include<stdio.h>voidfunc(int);main(){intx;func(1... 刚开始学C语言,问一下:
C语言里面的函数能不能调用全局变量啊?
举个例子:
#include<stdio.h>
void func(int);
main()
{
int x;
func(1);
printf("er");
}
void func(int a)
{
x=a; (这里报错,说x还未定义)
}
展开
 我来答
匿名用户
2010-07-20
展开全部
当然可以调用全局变量,这个程序报错的原因是 x不是全局变量 ,全局变量就是在函数外面定义的变量,修改如下:

#include<stdio.h>

int x;/*注意这里*/

void func(int);
main()
{
/*注意这里*/
func(1);
printf("er");
}
void func(int a)
{
x=a;
}
White_MouseYBZ
2015-10-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6370万
展开全部

当然可以。看下面的举例代码及注释:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
char str[]="This is a simple C program.";//定义一个全局数组
void show(char *q){//定义一个显示函数
    printf("%s\n",q);
}
int main(void){
    show(str);//用全局变量调用显示函数
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Winston_1006
2010-07-20 · TA获得超过800个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:178万
展开全部
可以,但是你的这个X并不是全局变量啊,main也是函数,你在main里面声明的变量,只能在main里边用。你的解决方法是:

1.把x在main外部声明,就在func函数头前边;
2.把void func(int)改成int func(int),然后在main里边把func(1)改成x = func(1),当然func的函数实现也是int func(int a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangzhe2291
2010-07-20 · TA获得超过691个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:467万
展开全部
x明显是局部变量,作用域只在main函数中
x定义在函数外部时,才是全局变量
比如
#include<stdio.h>
void func(int);
int x;
main()
{
int x;
func(1);
printf("er");
}
void func(int a)
{
x=a; (此时的x是外部的x,并非main中的x)
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
离康的d
2010-07-20 · TA获得超过404个赞
知道答主
回答量:152
采纳率:0%
帮助的人:0
展开全部
void func(int); //void func(int a)

void func(int a)
{
x=a; (这里报错,说x还未定义)
}

这个X是什么类型?X没定义你怎么把a给x
{
int x;
x = a
return x;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式