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

2.1 变量名

2.2 数据类型及长度

char  字符型,占用一个字节

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

float  单精度浮点型

double  双精度浮点型

限定符:short、long、signed、unsigned

 

练习2-1  编写一个程序以确定分别由 signed 及 unsigned 限定的 char、short、int 与 long 类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。后一种方法的实现较困难一些,因为要确定各种浮点类型的取值范围。

 

2.3  常量

整数,不加什么,默认为int类型,结尾加 l 或 L 为 long 型。ul 或 UL 为 unsigned long 型。以 0 开头表示八进制,0x开头表示十六进制。

浮点数, 没有后缀的为 double 型,后缀为 f 或 F 表示 float 类型,后缀为 l 或 L 表示 long duble。

字符常量是一个整数

\a  响铃符   \\  反斜杠  

\b  \?  \f  \'  \n  \"  \r  \ooo  \t  \xhh  \v

枚举

2.4  声明

2.5  算术运算符

2.6  关系运算符与逻辑运算符

1 for ( i=0; i<lim-1 && (c=getchar()) != '\n' && c != EOF; ++i )
2     s[i] = c;

 

练习2-2  在不使用运算符 && 或 || 的条件下编写一个与 上面的 for 循环语句等价的循环语句。

 

2.7  类型转换

一般来说,自动转换是指把“比较窄的”操作数转换为“比较宽”的操作数,并且不丢失信息的转换。针对可能导致信息丢失的表达式,编译器可能会给出警告信息。

 1 int atoi(char s[])
 2 {
 3   int i, n;
 4 
 5   n = 0;
 6   for ( i=0; s[i] >= '0' && s[i] <= '9'; ++i ) {
 7     n = 10 * n + (s[i] - '0');
 8   }
 9     return n;
10   
11 }

将一串数字(字符)转换为一个数值

练习2-3  编写函数 htoi(s), 把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f以及A~F。

 

posted @ 2018-02-21 00:37  左揽雀尾007  阅读(103)  评论(0编辑  收藏  举报