在C语言中引用外部变量,一般使用extern关键字。举个例子如下:
创新互联建站专注于企业全网整合营销推广、网站重做改版、黄埔网站定制设计、自适应品牌网站建设、H5场景定制、商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为黄埔等各大城市提供网站开发制作服务。
//1.c 中定义一个变量g_a
int g_a = 100;
//2.c 中定义一个函数输出g_a
#include stdio.h
extern int g_a; //这里需要用extern说明g_a是一个外部全局变量
void f() {
printf("%d\n", g_a);
}
//3.c main函数中调用f()
void f(); //声明函数f()
int main()
{
f();
}
说明:在2.c中如果不使用extern关键字,则会出现编译错误提示。写入extern int g_a声明后,则编译成功。
C语言中主函数中定义的变量只能在主函数中使用,所以你还得再定义一个变量。
当然,捏可以把主函数中定义的这个变量传递给被调用的函数作为参数。
例如
void fun(int x)
{
}
main()
{
int num=9;
fun(9);
}
但是如果你要在被调用函数中使用这个变量例如
fun()
{
num++;
}
像这样,就是错的,编译器会报错,main中定义的变量是局部变量,只能在main中使用。
你可以在main外部定义一个变量,这样在被调用函数中也就可以使用了。
可以传参啊
#includestdio.h
void show(int x ,int y);
int main()
{
int a=5,b=10;
show(a,b);
return 0;
}
void show(int x ,int y)
{
printf("%d\n",x);
printf("%d\n",y);
}
main()中的extem a;改为extem int a; extem用于将用于将其他源文件的函数或变量的作用范围扩大到整个程序。在定义是不需要,只有在应用前用申明语句申明即可,如extern void print(int n);
你也没说哪不懂,只能回答这么多了,希望对你有帮助
a为main函数中的局部变量,在函数zjsx中是不可见的,应该以入参的形式把a传入zjsx中。
void zjsx(int a);
int main()
{
int a=0;
zjsx(a);
return 0;
}
void zjsx(int a)
{
printf("a的值为%d\n",a);
}
两者的区别只在于作用域和生存周期。main函数是一个进程的入口,此外,和别的函数无区别。
1、main函数里定义的是局部变量,只是在main函数里有效。
2、如果程序里有多个函数,定义的全局变量在这些函数里都可以使用,而在main中定义的只能在main中使用,其他函数不可以直接调用。
3、题目中的两个程序的区别只在于程序一的a和s变量是全局变量,程序二的a和s变量是局部变量。
4、全局变量是程序的各个函数都可以调用的,而局部变量只在函数内部有效。
扩展资料:
全局变量是编程术语中的一种,源自于变量之分。
变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
局部变量(Local variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。在C++、C#、Ruby这些面向对象语言中,一般只使用局部变量。
面向对象编程是现在普遍采用的是软件开发方法,因此无需考虑是局部变量还是全局变量,说到变量,往往都是局部变量。
参考资料:百度百科-局部变量
参考资料:百度百科-全局变量