读书人

部类、运算符与表达式

发布时间: 2012-11-05 09:35:12 作者: rapoo

类型、运算符与表达式

1.常量

一个字符常量是一个整数,书写时将一个字符括在单引号中,如‘x’。字符在机器字符集中的数值就是字符常量的值。例如,在ASCII字符集中,字符‘0’的值为48,它与数值0没有关系。如果用字符‘0’代替这个与具体字符集有关的值(比如48),那么,程序就无需关心该字符对应的具体值,增加了程序的易读性。字符常量一般用来与其它字符进行比较,但也可以像其它整数一样参与数值运算。

字符串常量也叫字符串字面值,使用双引号括起来的0个或多个字符组成的字符序列。从技术角度看,字符串常量就是字符数组。字符串的内部表示使用一个空字符‘\0’作为串的结尾,因此,存储字符串的物理存储单元数比括在双引号中的字符数多一个。标准库函数strlen(s)可以返回字符串参数s的长度,但长度不包括末尾的'\0'.

注意:字符常量与仅包含一个字符的字符串之间的区别:'x'与"x"是不同的。前者是一个整数,其值是字母x在机器字符集中对应的数值(内部表示值);后者是一个包含一个字符以及一个结束符'\0'的字符数组。

枚举常量是另外一种类型的常量。枚举是一个常量整型值的列表。在没有显式说明的情况下,enum类型中第一个枚举名的值为0,第二个为1,以此类推。如果只指定了部分枚举名的值,那么未指定值的枚举名的值将依着最后一个指定值向后递增。不同枚举中的名字必须互不相同,同一枚举中不同的名字可以具有相同的值。

任何变量的声明都可以使用const限定符限定。该限定符指定变量的值不能修改。对数组而言,const限定符指定数组所有元素的值不能被修改。

2.算术运算

取模运算不能应用于float或double类型。在有负操作数的情况下,整数除法截取的方向以及取模运算结果的符号取决于具体机器的实现,这和处理上溢和下溢的情况是一样的。

3.类型转换

(1)编程:将一串数字转换为相应的数值。

/* bitcount: count 1 bits in x */int bitcount(unsigned x){int b;for (b = 0; x != 0; x >>= 1)if (x & 01)b++;return b;}
这里将x声明为无符号类型是为了保证x右移时,无论该程序在什么机器上运行,左边空出的位都用0(而不是符号位)填补。

这里面还用到了赋值运算符>>=,它的优点:表达方式与人们的思维习惯比较接近。



读书人网 >编程

热点推荐