小冲哥线下课堂


Join the forum, it's quick and easy

小冲哥线下课堂
小冲哥线下课堂
Would you like to react to this message? Create an account in a few clicks or log in to continue.
搜索
 
 

结果按:
 


Rechercher 高级搜索

关键词

最新主题
» 新人来报道了。。。。。。。。。
C语言笔记9--系统的记忆 Empty周日 十月 14, 2012 3:37 pm 由 15178959183

» 新人报道~我不是吐槽贴。。。
C语言笔记9--系统的记忆 Empty周三 五月 16, 2012 5:38 pm 由 萝卜爱喝水

» 课后作业1:编一个程序
C语言笔记9--系统的记忆 Empty周三 五月 09, 2012 11:24 pm 由 廖承启

» C语言初级课堂2--"Hello world"
C语言笔记9--系统的记忆 Empty周六 五月 05, 2012 12:52 am 由 醉之殇

» 新人来报道了。。。。。。
C语言笔记9--系统的记忆 Empty周四 五月 03, 2012 8:50 pm 由 sunquanwen

» 新人报到,字怎样就大了
C语言笔记9--系统的记忆 Empty周三 四月 25, 2012 7:50 am 由 wanghong

» 果断的。来报道啦。。。嘿嘿,我是新手哦
C语言笔记9--系统的记忆 Empty周六 四月 21, 2012 2:41 pm 由 ゛﹏小冲哥ゞ ✿『人事精英』✿李帅

» 指针数组与行指针的异同
C语言笔记9--系统的记忆 Empty周一 四月 09, 2012 3:59 pm 由 *小耳朵*

» 行指针q引用数组元素的方法
C语言笔记9--系统的记忆 Empty周一 四月 09, 2012 3:46 pm 由 *小耳朵*

十一月 2024
周一周二周三周四周五周六周日
    123
45678910
11121314151617
18192021222324
252627282930 

日历 日历

合作伙伴
免费论坛

免費論壇




C语言笔记9--系统的记忆

向下

C语言笔记9--系统的记忆 Empty C语言笔记9--系统的记忆

帖子  *小耳朵* 周二 三月 20, 2012 5:56 am

函数
5. 局部变量和全局变量


从变量作用域角度分,变量可分为局部变量和全局变量。

1)内部变量(局部变量)

在一个函数内定义,只在函数范围内有效的变量。

   2)外部变量(全局变量)

在函数外定义,可以为本文件其它函数所共用,有效范围从定义变量的位置开始

     到本文件结束。建议尽量少使用全局变量,因为它在程序全部执行过程中都占用

     资源,而且使函数的通用性降低了。如果在定义外部变量之前的函数要想使用该

     外部变量,则应在该函数中用extern作外部变量说明。


6. 动态存储变量与静态存储变量


从变量值存在的时间(生存期)角度来分,可分为静态存储变量和动态存储变量。静态存储指在程序运行期间给变量分配固定的存储空间,动态存储指程序运行期间根据需要动态的给变量分配存储空间。

C语言中,变量的存储方法分为两大类:静态存储类和动态存储类,具体包括:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。

1) 局部变量的存储方式

函数中的局部变量如不作专门说明,都之auto的,即动态存储的,auto可以省略。局部变量也可以定义为static的,这时它在函数内值是不变的。静态局部变量如不赋初值,编译时系统自动赋值为0,动态局部变量如不赋初值,则它的值是个不确定的值。C规定,只有在定义全局变量和局部静态变量时才能对数组赋初值。为提高执行效率,c允许将局部变量值放在寄存器中,这种变量叫register变量,要用register说明。但只有局部动态变量和形式参数可以作为register变量,其它不行。

2) 全局变量的存储方式

全局变量在函数外部定义,编译时分配在静态存储区,可以在程序中各个函数所引用。多个文件的情况如何引用全局变量呢?假如在一个文件定义全局变量,在别的文件引用,就要在此文件中用extern对全局变量说明,但如果全局变量定义时用static的话,此全局变量就只能在本文件中引用了,而不能被其它文件引用。

3) 存储类别小结

从作用域角度分,有局部变量和全局变量

局部变量:自动变量,即动态局部变量(离开函数,值就消失)

     静态局部变量(离开函数,值仍保留)

 寄存器变量(离开函数,值就消失)

 (形参可定义为自动变量和寄存器变量)

全局变量:静态全局变量(只限本文件引用)

 全局变量(允许其它文件引用)

从存在的时间分,有静态存储和动态存储

动态存储:自动变量(本函数内有效)

 寄存器变量(本函数内有效)

 形参

静态存储:静态局部变量(函数内有效)

 静态全局变量(本文件内有效)

 全局变量(其它文件可引用)

从变量值存放的位置分

静态存储区:静态局部变量

  静态全局变量

全局变量

动态存储区:自动变量和形参

寄存器内:寄存器变量


7. 内部函数和外部函数


内部函数:只能被本文件中的其它函数调用,定义时前加static,内部函数又称静态函数。

外部函数:可以被其它文件调用,定义时前加extern,如果省略,则隐含为外部函数,在需要调用此函数的文件中,一般要用extern说明。
*小耳朵*
*小耳朵*
版主
版主

帖子数 : 67
注册日期 : 12-03-16

http://1196631391@qq.com

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题