第二章 类型、运算符与表达式

ANSI标准对语言的基本类型与表达式做了许多小的修补与增补,所有整型都包括signed(带符号)和unsigned(无符号)两种形式,且可以表示无符号常量与十六进制字符常量。
2.1 变量名
名字是由字母和数字组成的序列,但其第一个字符必须为字母。下划线“_”被看做是字母。区分大小写。
关键字不能做变量名,所有关键字中的字符都必须小写。
2.2 数据类型及长度
C语言只提供了下列几种基本数据类型:
char 字符型,占用一个字节,可以存放本地字符集中的一个字符
int 整型,通常反映了所用机器中整数的最自然长度
float 单精度浮点型
double 双精度浮点型
此外,还可以在这些基本数据类型的前面加上一些限定符。short与long两个限定符用于限定整型:
short int sh;
long int counter;
在上述这宗类型的声明中,关键字int可以省略。
short与int类型至少为16位,而long类型至少为32位,并且short类型不得长于int类型,而int类型不得长于long类型。
类型限定符singed与unsinged可用于限定char类型或任何整型。unsigned类型的数总是正值或0,并遵守算术模运算2n,其中n是该类型占用的位数。
2.3 常量
long类型的常量以字母l或L结尾。无符号常量以字母u或U结尾。后缀ul或UL表明是unsigned long类型。
没有后缀的浮点数常量为double类型。后缀f或F表示float类型,而后缀l或L则表示long double类型。
整型数除了用十进制表示外,还可以用八进制或十六进制表示。带前缀0的整型常量表示它为八进制;前缀为0x或0X,则表示它为十六进制。八进制与十六进制的常量也可以使用后缀L表示long类型,使用后缀U表示Unsigned类型。
ANSI C语言中的全部转义字符序列如下所示:
\a 响铃符 \\ 反斜杠
\b 回退符 \? 问号
\f 换页符 \' 单引号
\n 换行符 \" 双引号
\r 回车符 \ooo 八进制数
\t 横行制表符 \xhh 十六进制数
\v 纵向制表符
字符常量'\0'表示值为0的字符,也就是空字符(null)。我们通常用'\0'的形式代替0,以强调模型表达式的字符属性,但其数字值为0。
字符串的内部表示使用一个空字符'\0'作为字符串的结尾,因此,存储字符串的物理存储单元数比括在双引号中的字符多一个。
2.4 声明
所有变量都必须先声明后使用,尽管某些变量可以通过上下文隐式地声明。
任何变量的声明都可以使用const限定符限定,该限定符指定变量的值不能被修改。对数组而言,const限定符指定数组所有元素的值都不能被修改。
2.5 算术运算符
取模运算符%不能应用于float或double类型。在有负操作数的情况下,整数除法截取的方向及取模运算结果的符号取决于具体机器的实现。
2.6 关系运算符与逻辑运算符
2.7 类型转换
假定int类型占16位,long占32位,那么,-1L<1U,这是因为unsigned int类型的1U将被提升为singed long类型;但-1L>1UL,这是因为1L将被提升为unsigned long类型,因而成为一个比较大的正数。
2.8 自增运算符与自减运算符
表达式++n先将n的值递增1,然后再使用变量n的值,而表达式n++则是先使用变量n的值,然后再将n的值递增1。
2.9 按位运算符
2.10 赋值运算符与表达式
大多数的二元运算符都有一个相应的赋值运算符op=,其中,op可以是下这些运算符之一:
+ - * / % << >> & ^ |
如果expr1和expr2是表达式,那么
expr1 op=expr2
等价于
expr1=(expr1) op (expr2)
2.11 条件表达式
2.12 运算符优先级与求值顺序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值