第三章、数据类型、运算符和表达式

chosen1cwp 2021年09月17日 244次浏览

第一节 数据类型

数据既是程序加工和处理的对象,也是程序加工和处理的结果。

1、基本类型包括整型、实型(又称浮点型)、字符型和枚举型四种。

2、构造类型是由基本数据类型按一定规则组合而成的复杂数据类型,包括数 组型、结构体类型和共用体类型。

3、指针类型是一种更加灵活的数据类型,用来表示内存地址。

4、空类型是从语法完整性角度给出的数据类型,表示不需要数据值,因而没 有类型

第二节 常量

常量又称为常数,是在程序运行过程中其值不能改变的数据。

整型常量:

整型常量通常称为整数,不带有小数部分,包括正整数、负整数和0。

C语言中,整型常量有三种书写形式:

1、八进制整型常量,必须以0开头,即以0作为八进制整数的前缀,是由数字 0~7组成的数字串。

2、十进制整型常量,即通常的整数,没有前缀,是由数字0~9组成的数字串, 是C语言中用的最多的一种形式。

3、十六进制整型常量,必须以0X或0x开头,即以0X或0x作为十六进制整 数的前缀,是由字符0~9、a~f或A~F组成的字符串。

实型常量

又称为浮点型常量或实数,实型常量只使用十进制。

C语言的实型常量有两种书写形式:

1、十进制小数形式,由整数部分、小数点和小数部分组成,其中小数点必须 有,整数部分和小数部分可以省略其中一个,正、负通过前面的“+”(可以 省略)和“-”区分。

2、指数形式(用E或e表示),由尾数部分、阶码标志(小写字母e或大写字 母E)和指数部分组成,其一般形式为aEb或aeb,其中尾数部分a的位数决 定了数值的精度,指数部分b的位数决定了可表示的数值范围。a和b均有正 负之分,且b必须为整数。
3.4e-2

3.4 * 10-2

常量-字符常量

字符常量包括普通字符常量和转义字符常量两种。

普通字符常量是用一对单引号括起来的单个字符,例如‘a’ 、 ‘?’均为普 通字符常量。

C语言还允许使用一种特殊形式的字符常量,即以反斜杠“\” 开头的转义字符,它只代表某一特定的ASCII码字符。

C语言规定字符常量中的字母是区分大小写的。 每个字符常量在内存中占用1字节,具体存放的是该字符对应的ASCII码值。

需要注意的是,C语言中空字符和空格符号不同。空字符用转义字符“\0”表 示,其值是0;空格符号是ASCII字符集中的一个可显示字符,其ASCII值是 32,在屏幕上显示为空格。

需要注意的是,C语言中空字符和空格符号不同。空字符用转义字符“\0”表示,其 值是0;空格符号是ASCII字符集中的一个可显示字符,其ASCII值是32,在屏幕上显示 空格。

常量-字符串常量

字符串常量又称为“字符串” ,

是用双引号括起来的零个或多个字符的序列。

字符 串中字符的个数称为字符串长度。

编译时自动在字符串的末尾处加一个转义字符‘\0’作为字符串的结束标志,即长度为n个字符的字符串占用n+1字节。

字符常量与字符串常量是不同的,其区别在于:

1、定界符不同,字符常量使用单引号,而字符串常量使用双引号。

2、长度不同,字符常量的长度固定为1;而字符串常量的长度,可以是0,也可以 是某个整数。

3、存储要求不同,字符常量存储的是字符的ASCII码值,在内存中只占用1字节; 而字符串常量,除了要存储有效的字符外,还要存储一个字符串结束标志‘\0’

常量-符号常量

符号常量使用之前必须先定义,其定义的一般格式: #define 符号常量 常量

其中,常量可以是任意类型。

符号常量一般采用大写字母表示,而变量一般采用小 写字母表示。

符号常量的定义一般放在程序的开头,每个定义必须独占一行,因为 不是语句,所以后面没有分号“;” 。

使用符号常量的优势在于:
1、提高程序的可读性
2、便于程序修改


第三节 变量

 定义:其值可以改变的量。
 定义格式:数据类型 变量名;
 变量应该有名字,并在内存中占据一定的存储单元。
 变量名和变量值有不同的含义

变量-整型变量

整型变量分为四种:

1、基本整型,类型关键字为int。

2、短整型,类型关键字为short[int]。

3、长整型,类型关键字为long[int]。

4、无符号整型,又称为无符号基本整型(unsigned [int])、无符号短整型 (unsigned short)和无符号长整型(unsigned long)三种。

在16位编译器中,一般一个int型变量占用2字节,且long型(4字节)≥int型(2 字节)≥short型(2字节);
而在32位编译器中,一个int型变量占用4字节, long型变量占用4字节,short型变量占用2字节。

变量-实型变量

实型变量分为两种:

1、单精度实型,类型关键字为float,一般占用内存4字节,保留6~7位有效数字。 四舍五入了
2、双精度实型,类型关键字为double,一般占用内存8字节,保留15~16位有 效数字。

例如:
float a; a=123456.789 //实际a的值是 123456.7
double b; a=123456.789 //实际b的值是 123456.789

变量-字符型变量

字符型变量的类型关键字是char,存放的是字符的ASCII码值(无符号整数), 占用内存1字节。

需要注意的是,字符串只能是常量,C语言中没有字符串变量,而是用字符数组 存放字符串变量。

变量的定义

C语言规定,任何变量必须先定义后使用。

变量定义语句的一般格式: 数据类型符 变量名1[,变量名2,…];

对变量进行定义时,需要注意以下几个方面:

1、变量定义可以存放在函数之外,也可以放在函数体或符合语句中。
2、被定义为整型(包括int、short和long)的变量,若其值为-128~127,则 可以作为字符型变量使用。
3、被定为无符号整型(包括unsigned、unsigned short和unsigned long) 的变量,若其值0~255,也可以作为字符型变量使用
4、被定义为字符型的变量,可以作为整型(包括int、short和long)变量使用, 其将值为-128~127,也可以作为无符号整型(包括unsigned、unsigned short和unsigned long)变量使用,其值将为0~255。
5、变量定义后,系统自动为其分配连续的内存单元,所占用的内存字节数取决 于变量的数据类型。

变量的初始化

变量的初始化是给变量赋值的一种方式,定义变量的同时给变量赋初值称为变量 的初始化。

变量初始化语句的一般格式:

数据类型符 变量名1=初值1[,变量名2[=初值2],...];

int radius=2,area;
short m=1,n=2;
long l1=123L,l2;

有名常量的定义

C语言中,如果定义了变量并赋予其初值,但不希望在程序中对其值进行修改, 则可以将该变量定义为有名常量。

有名常量定义语句的一般格式:
const 数据类型符 变量名1=初值1[,变量名2=初值2,...];

const int j=1,k=2;
const char ch1=‘y’ ,ch2=‘N’;