C语言中----局部变量,外部变量,静态变量,寄存器变量

本文详细介绍了C语言中的四种变量类型:自动变量、静态变量、外部变量和寄存器变量。自动变量的作用域限于定义它的函数,每次调用函数时其值不会保留。外部变量在整个程序中有效,可以在不同文件间共享。静态变量分为内部静态和外部静态,前者在函数结束时不撤销,后者限制了访问范围。寄存器变量用于提高存取速度,但数量有限制,且不能对其取地址。
摘要由CSDN通过智能技术生成

c语言中变量分为四类,分别是

1.auto   自动变量

2.static   静态存贮分配变量(又分为内部静态和外部静态)

3.extern  全程变量(用于外部变量说明)

4.register  寄存器变量(分配在硬件寄存器中)

四大类,所有变量必须先说明(定义),后使用。


下面分别介绍

1.自动变量(局部变量)

局部变量:在一个函数开头或段开头处说明的变量,

它有几个特征,,

a、作用域为定义它的函数

b、编译器不会对自动变量给予隐含的初值,故其值不确定,因此每次使用前必须明确的置初值。

c、形参是自动变量,作用域仅限于相应函数内

d、自动变量随函数的引用而存在和消失,由一次调用到下一次调用之间不保持值。

  1. #include <stdio.h>  
  2.   
  3. void print_number (int x, int y)   
  4. {  
  5.          int m,sum;  
  6.          for(m = x;m<y;m++) {  
  7.                  sum +=m;  
  8.         }  
  9.         printf("%d\n",sum);  
  10. }  
  11.   
  12. void main(void)   
  13. {  
  14.      print_number(3,5);  
  15.      print_number(3,5);  
  16. }  
#include <stdio.h>

void print_number (int x, int y) 
{
         int m,sum;
         for(m = x;m<y;m++) {
                 sum +=m;
        }
        printf("%d\n",sum);
}

void main(void) 
{
     print_number(3,5);
     print_number(3,5);
}
这个程序打印的值均不正确,因为sum未赋初值,造成了打印的数为随机数。 我们把sum赋初值为0再执行以下,结果就正确了,这个程序说明局部变量必须要先赋初值再使用,另外说明局部变量的生命周期为函数调用时开始,函数调用完成时消亡。


2.外部变量:在函数外部定义的变量即为外部变量,它的作用域是整个程序(全程变量)。


a.    c程序可以分别放在几个文件上,每个文件可以作为一个编译单位分别进行编译。外部变量只需在某个文件上定义一次,其它文件若要引用此变量时,应用extern加以说明(外部变量定义时不必加extern关键字)。

b.   在同一文件中,若前面的函数要引用后面定义的外部(在函数之外)变量时,在函数里加extern加以说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值