第二章 数据类型、运算符和表达式
2.1引例
注释内容必须包含在/和/之间,其内容可以是任何可显示字符,注释部分对程序的编译过程和执行结果没有任何影响。注意“/”和“*”之间不能有空格
注释除了可以使用“/注释/”之外,还可以使用“//注释内容”
2.2C语言的数据类型
(1)基本结构还可以分解为其他类型,主要为整型、字符型和浮点型
(2)结构类型是根据已定义的一个或多个数据类型,用构造的方法来定义的。可以理解为,一个构造类型的值由若干个“成员”或“分量”构成。每个“成员”都是一个基本类型或一个构造类型
C语言中构造类型包括:数组类型、结构体类型、共用体类型和枚举类型
(3)指针是C语言中一种特殊的,同时又具有重要作用的数据类型
2.3C语言的常量
2.3.1直接常量
直接常量又分为整型常量、实型常量、字符型常量和字符串常量
1.整型常量
(1)在一个整型常量后面加一个字母u或U,认为是unsigned int 型,如246U
(2)在一个整型常量后面加一个字母l或L,认为是long int 型,如12L
2.实型常量
实数常量即实数,又称为浮点数
在C语言中,实型常量默认为是double型的实数,如果在数的后面加字母f或F(如1.65f、654.87F),则认为是float型的实数
3.字符型常量
(1)字符常量只能用单引号括起来,不能用双引号或其它括号
(2)字符常量只能是单个字符,不能是字符串
(3)字符可以是ASCII字符集中的任意字符
4.字符串常量
字符串常量是由一对双引号
系统自动在每个字符串的尾部加上’\0’作为字符串的结束标志
2.3.2符号常量
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量
(1)增加程序的可读性
(2)提高程序的可维护性
(3)简化程序代码
(4)方便数组的定义
2.4C语言的变量
2.4.1变量的定义与使用
1.变量的定义
f:小数
d:整数
c:字符
2.变量的初始化
对一个变量赋初值之后,该值被储存在分配给该变量的内存空间中
3.变量的使用
2.4.2整型变量
2.4.3实型变量
单精度型数据能保留7位有效数字,双精度型数据能保留16位有效数字
2.4.4字符型变量
字符型变量的值是字符常量,即用单引号引起来的单个字符
2.5运算符和表达式
2.5.1赋值运算符和赋值表达式
1.简单赋值运算符
2.复合赋值运算符
3.赋值表达式
变量=表达式
2.5.2算术运算符和算术表达式
1.基本的算术运算符
2.自增、自减运算符
C语言有两个特殊运算符“++”和“–”
自增运算符的操作对象不能是常量或表达式
3.算术运算符的优先级和结合性
算术运算符的优先级为:“++、–、-”>“、/、%”>“+、-”,即单目运算符的优先级高于双目运算符,双目算术运算符中、/、%的优先级高于+、-
4.算术表达式
算术表达式是由算术运算符、运算对象和括号连接起来的式子,运算对象可以是常量、变量和函数等。如a+b、3*(x+y)都是算术表达式
2.5.3逗号运算符和逗号表达式
逗号表达式的一般形式为:
表达式1,表达式2,…表达式n
2.5.4求字节数运算符
(1)sizeof(表达式)或sizeof表达式
(2)sizeof(数据类型名)
char类型占1字节
short int 类型占2字节
int类型占4字节
float类型占4字节
double类型占8字节
2.6数据类型转换
2.6.1自动类型转换
2.6.2强制类型转换
强制类型转换是采用强制类型转换运算符将某种数据类型强制转换成指定的数据类型,其一般形式为
(类型说明符)(表达式)
功能:把表达式的运算结果强制转换成类型说明符指定的类型
进行强制类型转换时需注意:
(1)需强制类型转换中的表达式一定要括起来,否则只对紧随括号后的量进行类型转换
(2)强制类型转换是一种不安全的转换,如果是从高级类型转换成低级类型,则会损失数据的精度
(3)强制类型转换并不能改变表达式中变量的类型和值