您的位置: 首页 计算机类> 水平考试> 复习资料> 程序员资料
计算机软件水平考试程序员复习资料 全国计算机水平考试复习资料
公务员考试辅导课程

高级语言程序设计知识点二

发布时间:06-20

来 源:

页 数:6页

上一篇:

下一篇:高级语言程序设计知识点一


4.变量的作用域和生存期
  变量的使用要注意变量的作用域(可使用范围)和生存期(存在的时间)。C语言规定,内部变量的作用域只局限于定义它的函数或复合语句。自动的内部变量是一种临时性变量,函数被调用时分配,函数执行结束时释放。而静态变量在程序执行前分配,直至程序结束才释放。由于静态的内部变量在函数结束时,依旧保持存储,函数上一次调用时留在内部静态变量中的结果能被下一次调用时继续使用。外部变量也在程序启动前分配,直至程序执行结束释放。普通的外部变量能提供别的源程序文件中的函数使用(要对它作外部说明);静态的外部变量只能供定义它的源程序中的全部函数专用。由于外部变量能供整个程序使用,所以外部量不能重名。

5.变量定义初始化
  变量定义是对变量的存储空间提出一种要求,存储空间分配后,变量的初值通常是不拔的。但程序可以要求系统在为变量分配存储空间同时为变量设定初值,这就是变量定义初始化。在变量的定义形式中,在变量名之后接上“=初值表达式”,该初值表达式的值就作为该变量的初值。C语言另有约定,对于静态变量和外部变量,若定义它们时未指定初值,系统给它们设置成全部二进位都是0的值。以下是各种变量定义的例子:
 (l)定义整型,并对其初始化。
       Short minInt =100;
       int i= l,j= 2, k=3;
       long p=-1L,q=1234567890L;
       unsigned usi= 254u;
       unsigned long up= 4294967295UL;
 (2)定义字符型变量,并对其初始化。
             char ch=’A’;
 (3)定义实型(浮点型、双精度型)变量,并对其初始化。
          float f=1.23456f;
          double d=1.2345678op87654;  

2.4  运算符

  每个运算符都代表对运算对象的某种运算,都有自已特定的运算规则,规定运算对象的个数、运算对象数据类型,以及运算结果的数据类型。C语言还规定运算符有不同的优先级和结合性。运算符的优先级指表达式求值时,按运算符的优先级由高到低的次序计算。如“先乘除后加减”。运算符的结合性是指运算符要求它的运算对象对它的结合方向。结合性确定了在相同优先级运算符连续出现的情况下运算对象与运算符结合的顺序,通常也是计算顺序。如算术运算符的结合性是从左至右的,则连续的加减或连续的乘除是从左向右计算。而赋值运算符的结合性是从右至左的,则连续的赋值运算是从右向左逐个计算赋值。在C语言中,要特别注意某些运算符因运算对象数据类型不同,可能有不同的意义。
1.算术运算符
  算术运算符的运算对象是基本数据类型的数据,实现通常的取整、取负、四则运算、求两整数相除后的余数的运算和增1减1运算。特别要留心的是整除运算、求余运算、增1运算和减1运算。
  对两个整型数据执行除运算(/),称为整除运算,要特别注意的是两个整型数据的整除运算的结果是整型的,如表达式3/2的结果为1,表达式2/3的结果为0。
  求余运算符(%)要求参与运算的两个运算对象均为整型数据,如 5% 3的值为 2。一般来说,求余运算所得结果的符号与被除数的符号相同。如-5%3的值为-2,5%-3的值为2。
  增1(++)和减1(--)运算符都是单目运算符,以整型、字符型和指针型变量为运算对象,并改变运算对象的值。按它们出现在变量之前和之后两种不同情况,其作用有微妙的差别。
  前缀++
  前缀++的一般形式是
    ++变量
  例如,若X是整型或某种指针类型的变量,则++X使变量X的值增大1个单位,并以X的新值作为表达式“++X”的运算结果。如以下语句执行前,变量X的值为1,语句
            j= ++ x;
使变量X的值变成3,变量j的值也为3。这里所说的一个“单位”是指:如果X是整型的,则++x就是普通的解释:“x的值比原值增加1";x是指针,它指向数组的某个元素,则++x使它指向数组的后一个元素。
      后缀++
      后缀++的一般形式是
      变量++
表达式“变量++”运算结果是该变量的原来值,在确定了表达式结果之后,用与前缀++相同的方式增大该变量的值1个单位。
     前缀++和后缀++都能使变量的值增加1个单位,但是它们所代表的表达式的值却不相同,前者是变量增加后的值,后者是变量还未增加的原先值。例如i,j为整型变量,且i的值为4,以下分别用①和②表记的代码将使j获得不同的值:
   ①j=++i ;
   ②j= i++
都使变量i的值变为5,但①使j的值为5;②使j的值为4。
    前缀--
    前缀--   的一般形式是
        --变量
前缀--使变量的情减少(或后退)l个单位,并以变量的新值为表达式“--变量”的运算结果。
    后缀--
    后缀--   的一般形式是
    变量--
后缀-- 作用于变量时,以该变量的值作为表达式“变量--”的运算结果,即先取其值为结果,然后用与前缀--相同的方式减少该变量1个单位。
    后缀-- 与前缀-- 的区别类似于后缀++与前缀++的区别。类似前面的例子,依旧假定i的值为4,两代码
  ③j= --i
  ④j=i--
都使变量i的值变为3,但③使j的值为3;④使j的值为4。
      使用++和--运算符时,其运算对象仅适用于变量,不能是常量等数据值表达式。如 4++或(i+j)++都是不合法的。
      ++和--是带有副作用的运算符。建议读者不要在一个表达式中对同一变量多次使用这样的运算符,可能会发生意想不到的结果。如i的值为4,对表达式
(i++)+(i++)
可能认为它的值为 9(+5)。然而在 TURBO C和MS C系统中,它的值为8。而表达式
(++i)+(++i)
的值为12。这是因为这些系统在处理 i++时,先使用 i的原值计算整个表达式,然后再让i连续两次自增;处理++i时,在计算表达式值之前,先对 i执行两次自增,然后才计算表达式。放前一个表达式的值为8,后一个表达式的值为12。
        因+与++(-与--类似)是两个不同运算符,对于类似表达式i+++j会有不同的理解:(i++)+ j或i+(++j)。 C编译的处理方法是自左至右让尽可能多的字符组成一个合法的句法单位(如标识符、数字、运算符等)。因此,i+++j被解释成(i++)+j,而不是i+(++j)。
增1(++)和减1(--)运算符的结合方向是自右至左的。




Google
 

     

考试信息

热点

课程

更新

©2005-2006 100ksw.com 版权所有 皖ICP备06013378号