定义与声明

来源:互联网 发布:vivo.com域名 编辑:程序博客网 时间:2024/05/14 13:59

     很少写网络笔记,还是喜欢用传统的方法写在笔记本上。但是有时候觉得写字太累,也想拥有一个自己的博客空间。呵呵,今天来个最简单的,觉得自己学习都是不求甚解,从今天开始,决定把东西搞清楚了就写下来,也算作为留下成长的痕迹吧

    定义与声明的区别:

    变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量的定义有且只能有一个,如果两次定义一个变量就会出来变量重定义的错误。

      声明就是告诉程序变量的类型和名字。其实定义也是一种声明:当变量定义时,我们声明了它的类型和名字。声明与定义的区别可以用extern来区别。我们可以用extern来声明变量而不定义它。不定义的声明如下:

       extern  int  i;       //声明但没有定义i

      int  i;                    //声明而且定义了i

       extern声明但不定义,也不分配存储空间。它只是说明变量定义在程序的其他地方。注意的是,程序中变量可以声明多次,但只能定义一次。

       值得注意的是,并不是出现了extern这个关键字了,后面的变量就一定是声明。如果声明拥有初始化式,那么它可以当成定义。只有当声明也是定义时,声明才可以初始化式,因为只有定义才分配存储空间。看下面的代码:

      extern    double  pi=3.1415926;      //定义

       虽然使用了extern,但这条语句还是定义了pi ,分配并初始化了存储空间。只有当extern声明位于函数外部时,才可以含有初始化式。

      因为已经初始化的extern声明当成了定义,所以该变量任何随后的定义都是错误的:

        extern  double  pi=3.1415926;               //定义

        double   pi;                                                 //错误:pi重定义

       同样,随后的含有初始化式的extern声明也是错误的:

       extern    double  pi=3.1415926;     //定义

       extern    double  pi;                          //正确,是声明不是定义

       extern    double   pi=3.1415926;   //错误:pi重定义

     任何多个文件中使用的变量都需要与定义分离的声明。在这种情况下,一个文件含有变量的定义,使用该变量的其他文件则包含该变量的声明(而不是定义)。

 

原创粉丝点击