一个例子搞懂C语言的局部变量与全局变量
#include <stdio.h>
int x = 77; /*全局变量x*/
void fn1()
{
extern int y; /*使用外部全局变量y,如果不加extern编译不通过*/
printf("fn1(): x=%d,y=%d\n",x,y); //x=77,y=88;
}
void fn2()
{
extern int y; /*使用外部全局变量y,如果不加extern编译不通过*/
y=888; /*修改外部全局变量y为888*/
printf("fn2(): x=%d,y=%d\n",x,y); //x=77,y=888;
}
int y = 88; /*全局变量y*/
void fn3()
{
printf("fn3(): x=%d,y=%d\n",x,y); //x=77,y=888,y无须使用extern因为y定义在fn3()前面。
}
int main()
{
int x = 10; /*main方法内的局部变量x*/
if(x>0)
{
int x = 100; /*if语句内的局部变量x*/
x/=2;
printf("if语句内, x=%d\n",x); //x=50;
}
printf("main方法内, x=%d\n",x);//x=10;
fn1();
fn2();
fn3();
getch();
return 0;
}
运行结果:
------------------------------------------
if语句内, x=50
main方法内, x=10
fn1(): x=77,y=88
fn2(): x=77,y=888
fn3(): x=77,y=888
本文出自 “Java技术同盟” 博客,请务必保留此出处http://simoniu.blog.51cto.com/2566344/1591746
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。