局部变量的作用域被限定在它们所定义的范围之内。局部变量在函数调用时的特征示例。图5.11全局变量与局部变量作用域重叠示意图在这种全局变量与局部变量作用域重叠的情况下,当程序的控制流程进入这个作用域重叠区域时必须要确定应该使用哪一个同名的变量。......
2023-11-20
C程序一般应该由若干个函数组成,根据不同的需要,构成一个C程序的若干个函数可以存放在同一个C源程序文件中,也可以存放在几个不同的C源程序文件中。在一个完整的C程序中,函数将程序划分为若干个相对独立的区域。在一个函数的内部,复合语句也可以划分出更小的范围区间。C语言规定,在函数外部、函数的内部、甚至在复合语句中都可以定义或声明变量。对于程序中所使用的变量,需要考虑以下几个方面的问题:
①各种区域内定义的变量作用范围如何界定。
②变量在程序运行期间内的存在时间如何确定。
③如何使用同一C程序内其他源程序文件中定义的变量。
④如何限制某一源程序文件中定义的变量在同一C程序的其他源程序文件中的使用。
在C语言中,对变量的性质可以从两方面进行分析:一是其能够起作用的空间范围,即变量的作用域;二是变量值存在的时间范围,即变量的存在时间(生存期)。(www.chuimin.cn)
变量的作用域和生存期是两个相互联系而又有本质区别的不同概念,它们的基本意义如下:
①一个变量在某个复合语句、某个函数、某个源程序文件或某几个源程序文件范围内是有效的,则称其有效的范围为该变量的作用域,在此范围内可以访问或引用该变量。变量的作用域与变量的定义位置有关。
②一个变量的存储空间在程序运行的某一时间段是存在的,则认为这一时间段是该变量的“生存期”,或称其在这一时间段“存在”,变量的生存期与变量的存储类别和定义位置有关。
为了能够有效地确定变量的上述两项属性,C语言中用存储类别和定义位置来对变量进行限定。在之前的讨论中都只考虑了变量的数据类型,事实上,C语言中变量定义的完整形式为:
[存储类别符]<数据类型符>变量表;其中,数据类型符说明变量的取值范围以及变量可以参加的操作(即可以进行的运算);存储类别符用于指定变量在系统内存储器中的存放方法。变量的存储类别有4种,它们是:自动型(auto)、寄存器型(register)、静态型(static)和外部参照型(extern)。变量的作用范围和存在时间都与变量的存储类别相关,下面从变量的作用域和生存期两个方面来讨论这些存储类别符的意义和用法。
有关C语言程序设计基础(第3版)的文章
局部变量的作用域被限定在它们所定义的范围之内。局部变量在函数调用时的特征示例。图5.11全局变量与局部变量作用域重叠示意图在这种全局变量与局部变量作用域重叠的情况下,当程序的控制流程进入这个作用域重叠区域时必须要确定应该使用哪一个同名的变量。......
2023-11-20
程序中的每个“变量灯”的“功率”大小不一,因此它们的作用域就不相同了。这一点表明形参变量只有在函数内才是有效的,这种变量的有效范围称变量的作用域。变量说明的方式不同,其作用域也不同。在内部变量的作用域内,外部变量将被屏蔽而不起作用。外部变量说明的一般格式:外部变量的作用域是从定义位置到本源文件结束。......
2023-10-21
图5.12extern关键字对全局变量的作用例5.16程序中在第12行定义了全局变量x并赋初值为100,根据定义其作用域为第12~17行所构成的区间。图5.13extern关键字对全局变量的作用在图5.13中标注为②的源程序文件中定义了全局变量y,该全局变量默认的作用域范围为其定义所在的整个源程序文件。自动变量的生存期与其所在函数被调用运行的时间相同,并且自动变量的值在函数的多次调用中都不会保留。......
2023-11-20
“struct结构体名”为结构体数据类型名字,使用结构体类型名才能在程序中定义结构体变量。③“数据类型名结构体成员i;”指定了结构体类型中的一个结构体成员,结构体成员必须像以前的变量定义一样进行说明,成员名的命名规则与变量名相同,要符合标识符的命名原则。④结构体类型定义语句是一条完整的C语句,所以结构体类型的声明要用“;”作为结束符。......
2023-11-20
变量是指程序在运行过程中其值可以发生变化的量。一个变量有3 个要素:变量名、变量类型和变量值。另外,系统还根据变量的类型检查该变量所进行的运算是否合法等。C 语言中,变量必须先声明,然后使用。整型变量的定义和使用。程序执行结果为:浮点型数据的舍入误差举例。由于实数存在舍入误差,使用时需要注意以下几点:不要试图用一个实数精确表示一个大整数,因为浮点数是不精确的。字符变量应用举例,字母大小写转换。......
2023-10-21
取内容运算符*,又称间接引用运算符,结合性自右而左,用来表示指针变量所指的变量。指针变量定义时,“*”仅表示其后的变量是指针类型变量。图6.5指针的算术操作若设指针变量p 的值为2000,对于整型数据,其长度是2 个字节。然后,通过指针变量升序输出。图6.7指针变量p1 和p2 交换前后的指针方向......
2023-10-21
图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
程序在编译时将每一个变量名对应一个地址,在内存中不再出现变量名,而只有地址。对变量值的存取通过地址进行,访问方式通常有两种。直接利用变量地址进行存取。在例6.1 中,当系统执行输入语句scanf时,根据变量i 与地址的对应关系,找到变量i 的起始地址2011,然后把键盘输入的数值存入&i 所指示的单元中。变量i在内存中的地址和数值,如图6.1 所示。这里,指针变量只能存放地址,而不能存放其他数据。......
2023-10-21
相关推荐