定义全局变量的时候, 是会赋初值0的。。而且它具有全程作用域,适用于定义后的全部函数中。。 但是当全局变量与局部变量同名,则在局部变量的作用巧尺握范围内,外部变量被“屏蔽”,即困冲它不起作用,如果要想用全局的那个变量的话,要使用作用域分辨符 :: , 你的那个例子中,main函数中的num就是全孝庆局变量的num, 所以输出的是0; add函数中(应该是void add(int num)吧??),形参中产生与全局变量同名的局部变量num,main函数传过去的实参为 5,num++,得num为6,所以输出是6.... 值得一提的是。。。局部变量的值并不会改变全局变量的值。。因为虽然它们是同名···但它们却不是同一个变量··因为他们不会同时出现····
创新互联作为成都网站建设公司,专注重庆网站建设公司、网站设计,有关成都企业网站定制方案、改版、费用等问题,行业涉及假山制作等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
C
一. 局部变量全局变量
1 局部变量:“在函数内定义的变量”,
即在一个函数内部定义的变量,只在本函数范围内渗弯敬有效。
2 全局变量:“在函数外定义的变量”,
即从定义变量的位置到本源文件结束都有效。
目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个丛慎函数中改变了全局变量的值,
就能影响到其他函数中全局变量的值,相当于各个函数之间有直接的传递渠道。
为了便于区别两者,C程序设计人员有一个习惯,将全局变量名的第一个字母用大写表示。如:float Max=0,Min=0; //定义全局变量Max,Min
以上内容可闹吵再查阅C语言理论知识。当然实践出真知,多写几次跑一跑就知道对应的区别啦
分析:全局变量作为C语言的一个知识点,虽然我们都了解胡悉链它的特点,陆局但在实际教学过程中应用得并不是很多。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可裤孙以考虑把要返回的多个值定义成全局变量。当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主调函数中。函数被调用后被更改后的全局变量值即为函数的数个返回值。下面以一个实例演示该方法的应用。
实例:编写函数求3个数中的最大值与最小值。
方法:把最大值、最小值分别定义成2个全局变量max、min,在用户自定义函数中把求出来的最大值与最小值分别赋给全局变量max、min。函数调用完毕后全局变量的max、min值即保存了函数要求返回的值。程序参考代码如下:
#include "stdio.h"
#include "conio.h"
int max,min;/*定义两个全局变量用于保存函数返回值*/ void max_min(int a,int b,int c) /*定义求最大最小值的函数*/ {max=min=a; /*初始化最大最小值*/
if(max if(max if(minb)min=b; if(minc)min=c; }
main() {int x,y,z;
printf(" 请输入3个整数:\n"); scanf("%d,%d,%d",x,y,z);
max_min(x,y,z) /*调用求最大值与最小值的函数*/
printf("三个数中的最大值为:%d;最小值为:%d",max,min);/*输出最大值与最小值*/
getch(); }
函数内部定义的变量为局部变量,函数外面定义的变量为全局变量,和轿如下
int global;//唤并肆蔽脊全局变量
int main()
{
int local;//局部变量
return 0;
}