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

xiaoxiao2021-02-28  113

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

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

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

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

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

转载请注明原文地址: https://www.6miu.com/read-34835.html

最新回复(0)