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还未定义)
} 展开
C语言里面的函数能不能调用全局变量啊?
举个例子:
#include<stdio.h>
void func(int);
main()
{
int x;
func(1);
printf("er");
}
void func(int a)
{
x=a; (这里报错,说x还未定义)
} 展开
6个回答
2010-07-20
展开全部
当然可以调用全局变量,这个程序报错的原因是 x不是全局变量 ,全局变量就是在函数外面定义的变量,修改如下:
#include<stdio.h>
int x;/*注意这里*/
void func(int);
main()
{
/*注意这里*/
func(1);
printf("er");
}
void func(int a)
{
x=a;
}
#include<stdio.h>
int x;/*注意这里*/
void func(int);
main()
{
/*注意这里*/
func(1);
printf("er");
}
void func(int a)
{
x=a;
}
展开全部
当然可以。看下面的举例代码及注释:
//#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,但是你的这个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);
1.把x在main外部声明,就在func函数头前边;
2.把void func(int)改成int func(int),然后在main里边把func(1)改成x = func(1),当然func的函数实现也是int func(int a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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)
}
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)
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void func(int); //void func(int a)
void func(int a)
{
x=a; (这里报错,说x还未定义)
}
这个X是什么类型?X没定义你怎么把a给x
{
int x;
x = a
return x;
}
void func(int a)
{
x=a; (这里报错,说x还未定义)
}
这个X是什么类型?X没定义你怎么把a给x
{
int x;
x = a
return x;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询