类型、运算符与表达式

变量和常量是程序处理的两种基本的数据对象,声明语句说明变量的名字与类型,也可以指定变量的初值。运算符指定将要进行的操作。表达式则将变量与常量组合起来生成新的值。对象的类型决定该对象可取值的集合以及对该对象执行的操作。

1.变量名

       对变量的命名与符号常量的命名存在一些限制条件。名字是由字母和数字组成的序列,但其第一个字符必须为字母。下划线“_”被看做字母,通常用于命名较长的变量名,以提高其可读性。由于库例程的名字通常以下划线开头,因此一般不要用下划线命名变量。大写字母和小写字母是有区别的。

       选择变量名要能够尽量从字面上表达变量的用途,这样做不容易引起冲突、不容易混淆。局部变量一般使用较短的变量名(尤其是循环控制变量),外部变量使用较长的名字。

2.数据类型及长度

       C语言只提供了几种基本的数据类型:

       char:字符型,只占用一个字节,可以存放本地字符集中的一个字符

       int :整型,通常反映了所用机器中整数的最自然长度

       float:单精度浮点型

       double:双精度浮点型

       此外,还可以在这些基本数据类型前面加上一些限定符。short与long两个限定符用于限定整型:

       short  int  sh;

       long  int   counter;

       在上述这种情况下,int可以被省略,通常很多人习惯这么做。

       short与long两个限定符的引入可以为我们提供满足实际需要的不同长度的整型数。int 通常代表特定机器中整数的最自然长度。short 型通常为16位,long型通常是32位。int类型可以为16或32位。各编译器可以根据硬件特性选择合适的类型长度,但通常要遵循下列限制:short与int 至少为16位,而long至少为32位,并且short类型不得长于int类型,而int类型不得长于long类型。

       类型限定符signed与unsigned可用于限定char类型或任何整型。unsigned类型的数总是正值或0,并遵守算数模2n定律,其中n是该类型占用的位数。例如,如果char对象占用8位,那么unsigned char类型变量的取值范围为0~255,而signed char类型变量的取值范围为-128~127。不带限定符的char类型的变量是否带符号取决于具体的机器,但可打印字符总是正值。

        long double类型表示高精度的浮点数。同整形一样,浮点型的的长度取决于具体的实现,float、double、与long double类型可以表示相同的长度,也可以表示两种或者三种不同的长度。

       有关这些类型长度的定义的符号常量以及其他与机器和编译有关的属性可以在标准头文件<linits.h>和<float.h>中找到。

3.常量

        类似于1234的整数常量属于int类型。long类型的常量以字母l或L结尾,如1234567789L。如果一个数太大无法用int类型表示时,也将被当做long类型处理。无符号常量以u或U结尾。后缀UL或者ul表明是unsigned long 类型。

        浮点数常量中包含一个小数点(如123.4)或一个指数(如1e-2),也可以两者都有。没有后缀的浮点数常量为double类型。后缀为f或F表示float类型,而后缀l或L则表示 long double类型。

        整形除了用十进制表示外,还可以用八进制或者十六进制表示。带前缀0的整形常量表示它为八进制形式。前缀为0x或者0X,则表示它为十六进制形式。例如,十进制数31可以写成八进制形式037,也可以写成十六进制形式0x1F。八进制与十六进制的常量也可以使用后缀L表示long类型,使用后缀U表示unsigned类型,例如,0XFUL是一个unsigned long类型的常量,其值十进制表示15。

       一个字符常量是一个整数,书写时将一个字符括在单引号中,如‘X’。字符在机器字符集中的数值就是字符常量的值。例如,在ASCII字符集中,字符‘0’的值为48,它与数值0没有关系。某些字符可以通过转义字符序列表示为字符和字符串常量,转义字符看起来是两个字符,但只表示一个字符。

       注意:常量表达式是仅仅包含常量的表达式。这种表达式在编译时求值,而不在运行时求值。具体参考《C程序设计语言》

       

猜你喜欢

转载自www.cnblogs.com/love-you1314/p/9749001.html