码迷,mamicode.com
首页 > 其他好文 > 详细

局部变量与全局变量

时间:2019-02-02 23:23:19      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:char   turn   nbsp   学生   形式   范围   amp   执行   一维数组   

1、局部变量

在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用他们,在此函数以外是不能使用这些变量的。这称为“局部变量”。

例:float f1(int a)/*函数f1*/

  {

    int b,c;  /*a,b,c有效*/

  }

  char f2(int x,int y) /*函数f2*/

  {

    int i, j;   /*x,y,i,j有效*/

  }

说明:(1)主函数定义的变量也只在主函数中有效,主函数也不能使用其他函数中定义的变量。

(2)不同函数中可以使用相同函数的变量,它们代表不同的对象,互不干扰。

(3)形式参数也是局部变量。

(4)在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。

例:

#include <stdafx.h>
#include<stdio.h>


void main()
{
    int a,b;
    {
        int c;
        c=a+b;
    }
}
    

2、全局变量

在函数内定义的变量是局部变量,而在函数外定义的变量称为外部变量,外部变量是全局变量(也称全程变量)。

全局变量可以为本文件中其他函数所共用。它的有效范围从定义变量的位置开始到本文件结束。

例:

#include <stdafx.h>
#include<stdio.h>

int p=1,q=5;  /*外部变量*/
float f1(int a)  /*定义函数f1*/
{
    int b,c;    
}
char c1,c2;    /*外部变量*/
char f2(int x,int y)    /*定义函数f2*/
{
    int i,j;
}
void main()    /*主函数*/
{
    int m,n;
}
    

例:输入正方体的长宽高l,w,h。求体积及三个面的面积。

#include <stdafx.h>
#include<stdio.h>

int s1,s2,s3;
int vs(int a,int b,int c)
{
    int v;
    v=a*b*c;
    s1=a*b;
    s2=b*c;
    s3=a*c;
    return (v);
}
void main()
{
    int v,l,w,h;
    printf("\n input l,w,h\n");
    scanf("%d%d%d",&l,&w,&h);
    v=vs(l,w,h);
    printf("\n v=%d,s1=%d,s2=%d,s3=%d\n",v,s1,s2,s3);
}
    

例:有一个一维数组,内放十个学生成绩,写一个函数,求出平均分,最高分和最低分。

#include <stdafx.h>
#include<stdio.h>

float max=0,min=0;
void main()
{
    float average(float array[],int n);
    float ave,score [10];
    int i;
    for(i=0;i<10;i++)
    {
        scanf("%f",&score[i]);
    }
    ave=average(score,10);
    printf("max=%6f\nmin=%6f\naverage=%6f\n",max,min,ave);
}
float average(float array[],int n)
{
    int i;
    float aver,sum=array[0];
    max=min=array[0];
    for(i=1;i<10;i++)
    {
        if(array[i]>max)
        {
            max=array[i];
        }
        else if(array[i]<min)
        {
            min=array[i];
        }
        sum+=array[i];
    }
    aver=sum/n;
    return(aver);
}

不建议使用全局变量:

原因:(1)全局变量在程序的全部执行过程中都占用储存单元,而不是仅在需要时才开辟单元。

(2)使用全局变量过多,会降低程序的清晰性。

(3)使函数的通用性降低了。

局部变量与全局变量

标签:char   turn   nbsp   学生   形式   范围   amp   执行   一维数组   

原文地址:https://www.cnblogs.com/lvfengkun/p/10349248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!