第二章摘抄笔记(一)The C Programming Lanuage

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

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

2.1变量名命名规则
名字是由字母和数字组成的序列(还包括下划线_),但其第一个字符必须为字母。大写字母和小写字母是有区别的。

2.2数据类型及长度
C语言只提供了下列几种基本数据类型:
char 字符型,占用一个字节,可以存放本地字符集中的一个字符
int 整型,通常反映了所用机器中整数的最自然长度
float 单精度浮点型
double 双精度浮点型
(各编译器可以根据硬件特性自主选择合适的类型长度)

在基本数据类型前面可以加一些限定符:short 与long 两个限定符用于限定整型。各编译器可以根据硬件特性自主选择合适的类型长度,但要遵循下列限制:short与int类型至少为16 位,而long类型至少为32 位,并且short类型不得长于int类型,而int类型不得长于long类型。

类型限定符signed 与unsigned 可用于限定char 类型或任何整型。

2.3 常量
一个字符常量是一个整数,书写时将一个字符括在单引号中,如,’x’。字符在机器字符集中的数值就是字符常量的值。字符常量一般用来与其它字符进行比较,但也可以像其它整数一样参与数值运算。

一个字符常量是一个整数,书写时将一个字符括在单引号中,如,’x’。字符在机器字符集中的数值就是字符常量的值。字符常量一般用来与其它字符进行比较,但也可以像其它整数一样参与数值运算。

某些字符可以通过转义字符序列(例如,换行符\n)表示为字符和字符串常量。ANSI C语言中的全部转义字符序列如下所示:
\a 响铃符 \ 反斜杠
\b 回退符 \? 问号
\f 换页符 \’ 单引号
\n 换行符 \” 双引号
\r 回车符 \ooo 八进制数
\t 横向制表符 \xhh 十六进制数
\v 纵向制表符

常量表达式是仅仅只包含常量的表达式。这种表达式在编译时求值,而不在运行时求值。

字符串常量也叫字符串字面值,是用双引号括起来的0 个或多个字符组成的字符序列。双引号不是字符串的一部分,它只用于限定字符串。字符常量中使用的转义字符序列同样也可以用在字符串中。

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

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

2.4声明
所有变量都必须先声明后使用

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

2.5算数运算符
二元算术运算符包括:+、-、*、/、%(取模运算符)
二元运算符+和-具有相同的优先级,它们的优先级比运算符、/和%的优先级低,而运算符、/和%的优先级又比一元运算符+和-的优先级低。算术运算符采用从左到右的结合规则。

2.6关系运算符和逻辑运算符
关系运算符包括下列几个运算符:> >= < <=它们具有相同的优先级。优先级仅次于它们的是相等性运算符:== !=。
关系运算符的优先级比算术运算符低

逻辑运算符&&与||有一些较为特殊的属性,由&&与||连接的表达式按从左到右的顺序进行求值,并且,在知道结果值为真或假后立即停止计算

运算符&&的优先级比||的优先级高,但两者都比关系运算符和相等性运算符的优先级低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值