本章的主要内容包括:
C语言中的数据表示
C语言数据类型
C语言的表达式计算
C语言的数学函数 。
第二章数据类型、运算符与表达式回首页本节的主要概念包括:
标识符:用来标识程序中的变量,符号常量,函数,数组,类型,文件等对象的名字 。
标识符只能由字母,数字和下划线组成,且第一个字符必需为字母或下划线 。 C语言中大小写字母是两个不同的字符 。
关键字:标识符的一个特殊的集合 。 其中的标识符在 C语言中有预先定义好的特殊意义 。 不能用于其他任何目的 。
C语言的关键字共 32个:
auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
2.1 标识符和关键字
类型,类型把数据和施加于数据之上的运算结合为一个统一体,
数据类型规定了该类型的数据在内存中的编码方式和长度,数据的取值范围,施加在该类型数据上的运算及运算结果的范围 。
C语言的基本数据类型,
整数类型 int
字符类型 char
实数类型 float和 double
数据外部表示:书写源程序时采用的形式,或人给运行中的程序提供数据时采用的形式,或人从程序中得到的输出所具有的形式 。 也称字面量 。 是用 ASCII字符方式表示的 。
数据内部表示:数据在计算机内部的二进制编码形式,是计算机处理采用的形式 。
2.2 C语言数据类型
2.2.1 整数类型 —— 整数类型简称整型,类型名为,int”
1,整型数据的内部表示 —— 补码 (complement)
一个正数的补码和其原码的形式相同,负数的补码将该数的绝对值的二进制形式按位求反,再加 1。
例:整数 100和 -100的内部表示形式:
100的二进制表示为 1100100,100的内部表示为:
2.2 C语言数据类型
0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0
-100的内部表示方法,
100的原码 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0
取反 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1
再加上 1得到 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 是 -100的补码
2.2.1 整数类型 —— 整数类型简称整型,类型名为,int”
2,整型分类标准 C定义的整型类型
2.2 C语言数据类型
2.2.1整数类型 —— 整数类型简称整型,类型名为,int”
3,整数的表示
( 1) 十进制表示:用一串连续的数字表示十进制数 。 负数在前面加负号
‘ -’,除表示整数 0外,不以 0开头 ( 以 0开头的数字串会被解释成八进制数 ) 。 后缀 ‘ l’或 ‘ L’表示长整型,‘ u’或 ‘ U’表示无符号数 。
例,345 31684 0 -23456 459L 356l 56789u 567LU
( 2) 八进制表示:以数字 0开头的一个连续数字序列,序列中只能有 0-7
这八个数字 。 后缀和负号的使用与十进制相同 。
例,045 -078 06745l 0177777u 而 019,423是非法的八进制数 。
( 3) 十六进制表示:以 0X或 0x开头的连续数字和字母序列,序列中只能有 0-9,A-F和 a-f这些数字和字母,字母 a,b,c,d,e,f分别对应数字 10,11,12,13,14,15,大小写均可 。 后缀和负号的使用与十进制相同 。
例,0x10 0X255 0xd4ef 0X6a7bL
2.2 C语言数据类型
2.2.2实数类型 —— 实数类型简称实型 。 整型和实型统称为算术类型 。
1,实型数据的内部表示 —— 指数法用数符,尾数,阶符,阶码四部分来表示一个实数 。
尾数是纯小数,表示实数的有效数值,尾数的位数决定实数有效范围
数符,表示实数的正负;
阶码是整数,表示指数,即尾数中小数点向左或向右移动的个数,限定了数的范围;
阶符是阶码的符号,表示尾数中小数点移动的方向 。
实数的值 =(数符 )尾数 × 2(阶符 )阶码
2.实型分类
C提供三种表示实数的类型:
单精度浮点数类型,简称,浮点,类型,类型名为 float
双精度浮点数类型,类型名为 double
长双精度浮点数类型,类型名为 long double
2.2 C语言数据类型
2.2.2实数类型
3,实型数的表示
C语言中最基本的实数类型是双精度类型 。 有两种表示形式:
( 1) 小数形式 。 由数字和小数点组成,必须有小数点 。
例,4.23,0.15,.56,78.,0.0
( 2) 指数形式 。 以幂的形式表示,以字母 e或 E后跟一个以 10为底的幂数 。
字母 e或 E之前必须要有数字,且字母 e或 E后面的指数必须为整数,字母 e或 E的前后及数字之间不得有空格 。
例,2.3e5,500e-2,.5E3,4.5e0,而 e4,.5e3.6,.e5,e都不合法
如果表示浮点类型和长双精度类型,在双精度数的最后附加后缀字符
f(或 F)和 l(或 L)。
例,34.2f,.5F,12.56L,2.5E3L
规范化的指数形式:一个实数的指数形式表示方法不止一种,小数点的左边有一位非 0的数字的表示法,规范化的指数形式 。 可以有统一的表示形式,被输出函数所采用 。
4,实型数的舍入误差
2.2 C语言数据类型
2.2.3字符型数据 ———类型名是 char
1,字符类型字符内部表示占用一个字节,用对应 ASCII编码的二进制形式存储 。
例:字符 ‘ A’的 ASCII代码为 65,则内存中字符 ‘ A’表示形式为 65的二进制表示 ‘ 01000001’。
C语言把字符类型看作一种特别短的整数类型 。 允许参与算术运算 。
例,‘ A’+ 2 表示将 ‘ A’的 ASCII码 65加 2,结果 67是字符 ‘ C’的 ASCII码 。
转义字符,‘ \’,具有控制含义的转义字符,在输入输出时会引起设备完成相应的动作 。
2,字符串 —— 双引号括起来的一串字符字符串结束标志,‘ \0’
字符串的内部表示方法:使用一片连续的字节空间,依次存放字符串的每一个字符,在结尾处加特殊字符 ‘ \0’,表示字符串结束 。
注意,字符和字符串表示形式的区别,’ a’和,a”有什么不同?
数字和数字字符的区别,1和 ’ 1’有什么不同?
空字符 ‘ \0’和空格字符 ‘ ’ 的区别,它们的 ASCII码值有什么不同?
2.2 C语言数据类型
2.3.1 常量和符号常量常量:程序运行中,其值不能被改变的量符号常量:用标识符表示的常量定义符号常量,
#define 符号常量名 常量值例,#define PAI 3.14159 /*定义符号常量代表圆周率
*/
注意使用符号常量的好处及编译对符号常量的处理方法 。
2.3.2 变量变量:程序运行中,其值可以改变的量称变量的名字,地址及其关系变量与类型的关系
2.3 常量和变量
2.3.2 变量变量的基本操作:
① 赋值,向变量中存入数据值;
② 取值 ( 引用 ),取得变量当前存储的值,以便在计算过程中使用 。
变量定义,类型名 <变量表 >;
变量定义的三个位置:
( 1) 函数或复合结构 ( 一对 {}括起来的一段程序 ) 内所有执行语句的前面 。
( 2) 所有函数外面 。
( 3) 函数形参表中 。
2.3 常量和变量
2.4.1 运算符,表达式和计算运算符,C语言中用于描述数据运算的特殊符号 。
表达式:用运算符将 C语言的各种运算对象连接起来,组成符合 C语法要求的式子,称表达式 。 运算对象包括常量,变量,函数等 。
计算:表达式的求值过程称计算 。
C的运算符主要分为四大类,
算术运算符 ( + - × / % ++ -- )
关系运算符与逻辑运算符 ( > < == >= <= !=) ( ! && || )
位运算符 ( << >> ~ | & )
特殊运算符,赋值运算符 ( =),条件运算符 (?,)
逗号运算符 (,),指针运算符 ( * &),
求字节运算符 ( sizeof),
强制类型转换运算符 (( 类型 )),
分量运算符 (,->),下标运算符 ( [ ]),
函数调用 ( ( )) 等 。
2.4 运算符、表达式和计算
2.4.1 运算符,表达式和计算优先级:运算符的优先级 。 规定表达式中不同运算符相邻出现时,
运算符的计算顺序 。 优先级高的运算符先进行计算 。
结合方向,C语言特有的,用来规定同样优先级的运算符相邻出现时表达式的计算方式 。
括号可以改变表达式的优先级和结合方式 。
数据类型对运算的限制:所有运算只能在相同的数据类型之间进行,且结果亦属于该数据类型 。
表达式计算需要一组类型转换规则 。
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
1,基本算术运算符:
+ 加法或正值运算符
- 减法或负值运算符
* 乘法运算符
/ 除法运算符
% 取模或求余运算符注意,取模运算只能用于整数,两个整数相除的结果为整数 。
算术运算符的三个优先级:
高级 一元 +和- 自右向左结合中级 * / % 自左向右结合低级 二元 +和- 自左向右结合
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
2,混合运算和类型转换
( 1) 混合运算和自动转换自动类型转换,C语言没有混合运算,当运算符两侧的数据类型不同时,系统先将两个运算对象转换成相同的数据类型,再进行实际计算 。 这种由混合运算引起的类型转换是自动进行的 。
转换原则:表示范围小的类型转换为表示范围大的类型 。 计算结果属于表示范围大的类型 。
如,char→int short→int int→unsigned int→long
float→double→long double
为了提高计算精度,有些是必需的转换 。 如:
char→ int short→ int float→ double
即使两个 float型数据相加,也都转换成 double型数据再相加 。
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
2,混合运算和类型转换
( 2) 强制类型转换 ( )
( 类型名 ) ( 表达式 )
强制类型转换运算得到一个中间变量,不改变原来变量的类型 。
3,自增,自减运算符,++”和,--”
自增,自减运算符是一元运算符,结合方向是,自右向左,。
作用:使变量的值增 1或减 1,只能用于变量 。
注意:
自增,自减运算符的前置写法和后置写法在表达式值计算方面的差别 。
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
3,自增,自减运算符,++”和,--”
例,分析下面程序段的运行结果:
#include<stdio.h>
main()
{ int x,y,z;
x=3; /* 整数 5赋给变量 x */
y=++x+3; /* 计算赋值号右边的表达式,值赋给 y变量 */
printf(”%d %d\n”,x,y); /* 按整数格式输出 x和 y的值 */
z=x++ +5; /* 计算赋值号右边的表达式,值赋给 z变量 */
printf(“%d %d\n”,x,z); /* 按整数格式输出 x和 z的值 */
}
2.4 运算符、表达式和计算
2.4.3 赋值运算符和赋值表达式
1,赋值运算符和赋值表达式赋值运算符,=
赋值表达式:由赋值运算符组成的表达式形式,变量名 =表达式优先级:只高于逗号运算符,比其它运算符的优先级都低 。
结合方式:自右向左
2,变量赋初值变量初始化:在定义变量时用类似赋值的方法给被定义的变量指定一个初始值 。
程序中使用变量时,不仅要满足,先定义,后使用,的规定,还要保证在对变量进行取值的操作前,一定以某种方法向变量中赋过值 。 方法可能是使用定义时初始化,也可能先定义变量,后用赋值或输入语句给变量赋初值 。
2.4 运算符、表达式和计算
2.4.3 赋值运算符和赋值表达式
3,复合赋值运算
10种复合赋值运算符:
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
将形如,变量名 =变量名 +表达式 的表达式简化成,变量名 +=表达式 的形式优先级和结合方式:与赋值运算符相同 。
4,赋值操作中的类型转换赋值运算同样要求运算对象的类型一致 。 如果赋值运算符两侧的数据类型不一致,系统自动把右侧表达式求得的值,按赋值号左边变量的类型进行转换 。 也可用强制转换的方式,人为地进行转换后赋给赋值号左边的变量 。
2.4 运算符、表达式和计算
2.4.4 sizeof运算符
sizeof运算符是一个单目运算符,它返回变量或类型的字节长度例如,float f;
sizeof(double) 为 8
sizeof(float) 为 4
sizeof(int) 为 2
sizeof(f) 为 4
括号内是类型的名字,也可以是已定义的变量名 。
2.4.5 逗号运算符和逗号表达式,,”
逗号表达式一般形式为:
表达式 1,表达式 2,...,表达式 n
计算过程是:依次求解表达式 1,表达式 2,...,表达式 n。 整个逗号表达式的值是最后一个表达式 n的值 。
逗号运算符的优先级最低,自左向右结合 。
2.4 运算符、表达式和计算使用数学函数:
第一步:在程序的开始处加入关于数学函数的说明信息
#include <math.h>
第二步:在表达式中调用函数函数名 (实参表 )
用,函数名 (实参表 )”的形式作为表达式的某一个运算分量 。
2.5 使用数学函数第二章数据类型、运算符与表达式本章主要知识点:
C语言的基本语法要素:标识符,关键字,常量,变量 ( 名,类型,
位置,值 ) 。
基本数据类型及数据表示:数据类型,数据内部和外部表示,数据类型对数据表示和运算的限制,基本数据类型 。
表达式计算:运算符,优先级,结合性,运算规则,类型转换,
数学函数使用 。
掌握本章内容的关键是理解数据类型对数据表示和运算的约束 。
回本章首页
C语言中的数据表示
C语言数据类型
C语言的表达式计算
C语言的数学函数 。
第二章数据类型、运算符与表达式回首页本节的主要概念包括:
标识符:用来标识程序中的变量,符号常量,函数,数组,类型,文件等对象的名字 。
标识符只能由字母,数字和下划线组成,且第一个字符必需为字母或下划线 。 C语言中大小写字母是两个不同的字符 。
关键字:标识符的一个特殊的集合 。 其中的标识符在 C语言中有预先定义好的特殊意义 。 不能用于其他任何目的 。
C语言的关键字共 32个:
auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
2.1 标识符和关键字
类型,类型把数据和施加于数据之上的运算结合为一个统一体,
数据类型规定了该类型的数据在内存中的编码方式和长度,数据的取值范围,施加在该类型数据上的运算及运算结果的范围 。
C语言的基本数据类型,
整数类型 int
字符类型 char
实数类型 float和 double
数据外部表示:书写源程序时采用的形式,或人给运行中的程序提供数据时采用的形式,或人从程序中得到的输出所具有的形式 。 也称字面量 。 是用 ASCII字符方式表示的 。
数据内部表示:数据在计算机内部的二进制编码形式,是计算机处理采用的形式 。
2.2 C语言数据类型
2.2.1 整数类型 —— 整数类型简称整型,类型名为,int”
1,整型数据的内部表示 —— 补码 (complement)
一个正数的补码和其原码的形式相同,负数的补码将该数的绝对值的二进制形式按位求反,再加 1。
例:整数 100和 -100的内部表示形式:
100的二进制表示为 1100100,100的内部表示为:
2.2 C语言数据类型
0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0
-100的内部表示方法,
100的原码 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0
取反 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1
再加上 1得到 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 是 -100的补码
2.2.1 整数类型 —— 整数类型简称整型,类型名为,int”
2,整型分类标准 C定义的整型类型
2.2 C语言数据类型
2.2.1整数类型 —— 整数类型简称整型,类型名为,int”
3,整数的表示
( 1) 十进制表示:用一串连续的数字表示十进制数 。 负数在前面加负号
‘ -’,除表示整数 0外,不以 0开头 ( 以 0开头的数字串会被解释成八进制数 ) 。 后缀 ‘ l’或 ‘ L’表示长整型,‘ u’或 ‘ U’表示无符号数 。
例,345 31684 0 -23456 459L 356l 56789u 567LU
( 2) 八进制表示:以数字 0开头的一个连续数字序列,序列中只能有 0-7
这八个数字 。 后缀和负号的使用与十进制相同 。
例,045 -078 06745l 0177777u 而 019,423是非法的八进制数 。
( 3) 十六进制表示:以 0X或 0x开头的连续数字和字母序列,序列中只能有 0-9,A-F和 a-f这些数字和字母,字母 a,b,c,d,e,f分别对应数字 10,11,12,13,14,15,大小写均可 。 后缀和负号的使用与十进制相同 。
例,0x10 0X255 0xd4ef 0X6a7bL
2.2 C语言数据类型
2.2.2实数类型 —— 实数类型简称实型 。 整型和实型统称为算术类型 。
1,实型数据的内部表示 —— 指数法用数符,尾数,阶符,阶码四部分来表示一个实数 。
尾数是纯小数,表示实数的有效数值,尾数的位数决定实数有效范围
数符,表示实数的正负;
阶码是整数,表示指数,即尾数中小数点向左或向右移动的个数,限定了数的范围;
阶符是阶码的符号,表示尾数中小数点移动的方向 。
实数的值 =(数符 )尾数 × 2(阶符 )阶码
2.实型分类
C提供三种表示实数的类型:
单精度浮点数类型,简称,浮点,类型,类型名为 float
双精度浮点数类型,类型名为 double
长双精度浮点数类型,类型名为 long double
2.2 C语言数据类型
2.2.2实数类型
3,实型数的表示
C语言中最基本的实数类型是双精度类型 。 有两种表示形式:
( 1) 小数形式 。 由数字和小数点组成,必须有小数点 。
例,4.23,0.15,.56,78.,0.0
( 2) 指数形式 。 以幂的形式表示,以字母 e或 E后跟一个以 10为底的幂数 。
字母 e或 E之前必须要有数字,且字母 e或 E后面的指数必须为整数,字母 e或 E的前后及数字之间不得有空格 。
例,2.3e5,500e-2,.5E3,4.5e0,而 e4,.5e3.6,.e5,e都不合法
如果表示浮点类型和长双精度类型,在双精度数的最后附加后缀字符
f(或 F)和 l(或 L)。
例,34.2f,.5F,12.56L,2.5E3L
规范化的指数形式:一个实数的指数形式表示方法不止一种,小数点的左边有一位非 0的数字的表示法,规范化的指数形式 。 可以有统一的表示形式,被输出函数所采用 。
4,实型数的舍入误差
2.2 C语言数据类型
2.2.3字符型数据 ———类型名是 char
1,字符类型字符内部表示占用一个字节,用对应 ASCII编码的二进制形式存储 。
例:字符 ‘ A’的 ASCII代码为 65,则内存中字符 ‘ A’表示形式为 65的二进制表示 ‘ 01000001’。
C语言把字符类型看作一种特别短的整数类型 。 允许参与算术运算 。
例,‘ A’+ 2 表示将 ‘ A’的 ASCII码 65加 2,结果 67是字符 ‘ C’的 ASCII码 。
转义字符,‘ \’,具有控制含义的转义字符,在输入输出时会引起设备完成相应的动作 。
2,字符串 —— 双引号括起来的一串字符字符串结束标志,‘ \0’
字符串的内部表示方法:使用一片连续的字节空间,依次存放字符串的每一个字符,在结尾处加特殊字符 ‘ \0’,表示字符串结束 。
注意,字符和字符串表示形式的区别,’ a’和,a”有什么不同?
数字和数字字符的区别,1和 ’ 1’有什么不同?
空字符 ‘ \0’和空格字符 ‘ ’ 的区别,它们的 ASCII码值有什么不同?
2.2 C语言数据类型
2.3.1 常量和符号常量常量:程序运行中,其值不能被改变的量符号常量:用标识符表示的常量定义符号常量,
#define 符号常量名 常量值例,#define PAI 3.14159 /*定义符号常量代表圆周率
*/
注意使用符号常量的好处及编译对符号常量的处理方法 。
2.3.2 变量变量:程序运行中,其值可以改变的量称变量的名字,地址及其关系变量与类型的关系
2.3 常量和变量
2.3.2 变量变量的基本操作:
① 赋值,向变量中存入数据值;
② 取值 ( 引用 ),取得变量当前存储的值,以便在计算过程中使用 。
变量定义,类型名 <变量表 >;
变量定义的三个位置:
( 1) 函数或复合结构 ( 一对 {}括起来的一段程序 ) 内所有执行语句的前面 。
( 2) 所有函数外面 。
( 3) 函数形参表中 。
2.3 常量和变量
2.4.1 运算符,表达式和计算运算符,C语言中用于描述数据运算的特殊符号 。
表达式:用运算符将 C语言的各种运算对象连接起来,组成符合 C语法要求的式子,称表达式 。 运算对象包括常量,变量,函数等 。
计算:表达式的求值过程称计算 。
C的运算符主要分为四大类,
算术运算符 ( + - × / % ++ -- )
关系运算符与逻辑运算符 ( > < == >= <= !=) ( ! && || )
位运算符 ( << >> ~ | & )
特殊运算符,赋值运算符 ( =),条件运算符 (?,)
逗号运算符 (,),指针运算符 ( * &),
求字节运算符 ( sizeof),
强制类型转换运算符 (( 类型 )),
分量运算符 (,->),下标运算符 ( [ ]),
函数调用 ( ( )) 等 。
2.4 运算符、表达式和计算
2.4.1 运算符,表达式和计算优先级:运算符的优先级 。 规定表达式中不同运算符相邻出现时,
运算符的计算顺序 。 优先级高的运算符先进行计算 。
结合方向,C语言特有的,用来规定同样优先级的运算符相邻出现时表达式的计算方式 。
括号可以改变表达式的优先级和结合方式 。
数据类型对运算的限制:所有运算只能在相同的数据类型之间进行,且结果亦属于该数据类型 。
表达式计算需要一组类型转换规则 。
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
1,基本算术运算符:
+ 加法或正值运算符
- 减法或负值运算符
* 乘法运算符
/ 除法运算符
% 取模或求余运算符注意,取模运算只能用于整数,两个整数相除的结果为整数 。
算术运算符的三个优先级:
高级 一元 +和- 自右向左结合中级 * / % 自左向右结合低级 二元 +和- 自左向右结合
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
2,混合运算和类型转换
( 1) 混合运算和自动转换自动类型转换,C语言没有混合运算,当运算符两侧的数据类型不同时,系统先将两个运算对象转换成相同的数据类型,再进行实际计算 。 这种由混合运算引起的类型转换是自动进行的 。
转换原则:表示范围小的类型转换为表示范围大的类型 。 计算结果属于表示范围大的类型 。
如,char→int short→int int→unsigned int→long
float→double→long double
为了提高计算精度,有些是必需的转换 。 如:
char→ int short→ int float→ double
即使两个 float型数据相加,也都转换成 double型数据再相加 。
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
2,混合运算和类型转换
( 2) 强制类型转换 ( )
( 类型名 ) ( 表达式 )
强制类型转换运算得到一个中间变量,不改变原来变量的类型 。
3,自增,自减运算符,++”和,--”
自增,自减运算符是一元运算符,结合方向是,自右向左,。
作用:使变量的值增 1或减 1,只能用于变量 。
注意:
自增,自减运算符的前置写法和后置写法在表达式值计算方面的差别 。
2.4 运算符、表达式和计算
2.4.2 算术运算符和算术表达式
3,自增,自减运算符,++”和,--”
例,分析下面程序段的运行结果:
#include<stdio.h>
main()
{ int x,y,z;
x=3; /* 整数 5赋给变量 x */
y=++x+3; /* 计算赋值号右边的表达式,值赋给 y变量 */
printf(”%d %d\n”,x,y); /* 按整数格式输出 x和 y的值 */
z=x++ +5; /* 计算赋值号右边的表达式,值赋给 z变量 */
printf(“%d %d\n”,x,z); /* 按整数格式输出 x和 z的值 */
}
2.4 运算符、表达式和计算
2.4.3 赋值运算符和赋值表达式
1,赋值运算符和赋值表达式赋值运算符,=
赋值表达式:由赋值运算符组成的表达式形式,变量名 =表达式优先级:只高于逗号运算符,比其它运算符的优先级都低 。
结合方式:自右向左
2,变量赋初值变量初始化:在定义变量时用类似赋值的方法给被定义的变量指定一个初始值 。
程序中使用变量时,不仅要满足,先定义,后使用,的规定,还要保证在对变量进行取值的操作前,一定以某种方法向变量中赋过值 。 方法可能是使用定义时初始化,也可能先定义变量,后用赋值或输入语句给变量赋初值 。
2.4 运算符、表达式和计算
2.4.3 赋值运算符和赋值表达式
3,复合赋值运算
10种复合赋值运算符:
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
将形如,变量名 =变量名 +表达式 的表达式简化成,变量名 +=表达式 的形式优先级和结合方式:与赋值运算符相同 。
4,赋值操作中的类型转换赋值运算同样要求运算对象的类型一致 。 如果赋值运算符两侧的数据类型不一致,系统自动把右侧表达式求得的值,按赋值号左边变量的类型进行转换 。 也可用强制转换的方式,人为地进行转换后赋给赋值号左边的变量 。
2.4 运算符、表达式和计算
2.4.4 sizeof运算符
sizeof运算符是一个单目运算符,它返回变量或类型的字节长度例如,float f;
sizeof(double) 为 8
sizeof(float) 为 4
sizeof(int) 为 2
sizeof(f) 为 4
括号内是类型的名字,也可以是已定义的变量名 。
2.4.5 逗号运算符和逗号表达式,,”
逗号表达式一般形式为:
表达式 1,表达式 2,...,表达式 n
计算过程是:依次求解表达式 1,表达式 2,...,表达式 n。 整个逗号表达式的值是最后一个表达式 n的值 。
逗号运算符的优先级最低,自左向右结合 。
2.4 运算符、表达式和计算使用数学函数:
第一步:在程序的开始处加入关于数学函数的说明信息
#include <math.h>
第二步:在表达式中调用函数函数名 (实参表 )
用,函数名 (实参表 )”的形式作为表达式的某一个运算分量 。
2.5 使用数学函数第二章数据类型、运算符与表达式本章主要知识点:
C语言的基本语法要素:标识符,关键字,常量,变量 ( 名,类型,
位置,值 ) 。
基本数据类型及数据表示:数据类型,数据内部和外部表示,数据类型对数据表示和运算的限制,基本数据类型 。
表达式计算:运算符,优先级,结合性,运算规则,类型转换,
数学函数使用 。
掌握本章内容的关键是理解数据类型对数据表示和运算的约束 。
回本章首页