讲师邮箱:[email protected]
第二章 基本数据类型、运算符和表达式
基本数据类型:
1)常量:包括值常量、符号常量。 |
2)定义符号常量的方法:“#define 标示符 常量值”,习惯上符号常量名用大写表示,而变量名用小写表示。
3)符号常量虽然用标示符来标示,但本质是常量,具有常量值不能改变的性质。
4)
类型 |
Int |
Short[int] |
Long[int] |
Unsigned[int] |
Unsigned short |
Unsigned long |
位数 |
16 |
16 |
32 |
16 |
16 |
32 |
字节数 |
2 |
2 |
4 |
2 |
2 |
4 |
长整型数据:整数后面加字母“l”或“L”;
无符号整数:在整数后面加字母“u”或“U”;
5)实型常量有两种表示方式:十进制小数形式、指数形式(3e2),注意:e前面不能没有数字,e后面的数字必须为整数,也不能加括号;
6)字符型常量:单引号括起来的一个字符,’A’,一个字节;
双引号括起来的,叫做字符串,可以含多个字符,“A”,两个字节:一个存A,一个存“\0”;
7)转义字符:是以“\”(反斜杠)开头的用单引号括起来的字符序列,如:\n,换行;\t,tab,下一个储存区;
8)‘\101’,八进制数,十进制是65,这是一个字符,输出是“A”;
9)字符型和整型在有ASCII码值的范围内是可以通用的;
10)a的ASCII码是97;A的ASCII码是 65;0的ASCII码是48;
字符型变量用%c来表示;
11)大写字母+32=小写字母;
12)变量的定义方式:[存储类别] 数据类型 变量名表,其中“存储类别”可以省略,缺省时,在函数内默认为auto型,即自动类型,程序中所有用到的变量都必须在程序中指定其类型,即“定义”;
13)给变量赋值有三种基本方式:赋值语句、初始化赋值和scanf(语句);int a,b,c;a=b=c=0;正确;int a=0,b=0,c=0;正确;int a=b=c=0;错误;
14)不能把字符串赋值给字符型变量,因为一个字符型变量只能存放一个字符;一般不要将一个负数赋值给一个unsigned型变量,因为负数不是无符号数;给整型变量赋值时,注意要避免超界,int型允许的最大整数是32767;
15)c语言提供了十五大类共四十四种运算符,有三个属性:①优先级:c语言的优先级别从高到低分15级;②结合性:规定了在相同优先级运算符连续出现时的计算顺序,包括自左向右和自右向左两种;③数目(操作对象的个数):单目、双目和三目;
16)算术运算符:+、-、*、/、%的结合性是自左向右;++自加和—自减的结合性是自右向左;优先级从高到低:(++、--、-)——>(+、/、%)——>(+、-);
16)取余(%):要求两个操作数都是整型,结果为整除后余下的整余数;当两个运算符的符号不同时,结果的运算符与被除数的符号相同;
17)变量名不能含有小数点;
18)除(/):若两个运算数都是整型,想得到实型数则可用(float)a/b得到;当两个操作数都是整数时,商也是整数,小数部分一律舍去,若有一个数是实型,则结果是实型的小数;3%5结果是3;
19)自增自减运算符:
++i,--i(在使用i之前,先使用i的值加减1);
i++,i--(在使用i之后,使i的值加减1);
若i的值是3,则j=++i,j的值为4;j=i++;j的值为3,然后变为4;
20)int a=5,b;b=++a;结果是a=6,b=6;若是b=a++;则a=6,b=5(即先把a赋值给b,再运行a++);执行a++*2后,表达式的值为10,a的值为6;执行++a*2后,表达式的值为12,a的值为6;自增、自减运算符只能用于整型变量,而不能用于表达式;
21)赋值运算符的优先级是14级,很低很低;赋值运算符的左面只能是变量名;复合赋值运算符:“+=”“-=”“*=”“/=”“%=”等,优先级高于加减,结合性是自右向左;
22)“()”的优先级是1级,最高;
23)假设a为整型变量,则a=3.78的结果是将3赋值给a,系统自动把赋值号右边是实数3.78转换成整型3,小数部分全部舍去,不遵循四舍五入的原则;整型数赋值给实型数,对数值不改变;
24)整型数在内存中是精确存储的,实型数是近似存储的;
25)关系运算符:<,>,<=,>=,==,!=,结合方向从左向右,优先级从高到低:(<、<=、>、>=)——>(==、!=),即a==b<c等价于a==(b<c),而不等价于(a==b)<c;
36)关系运算符描述的是一种“比较运算”,其结果有“真”(用1表示)和“假”(用0表示)两种;
37)x=(-50),0<=x<=100成立,解析:x=(-50),0<=x为假,其值为0,然后是0<=100,成立;
38)x为0到100之间的偶数表示为:int x;x>=0&&x<=100&&x%2==0;
39)例:对n(>0)个人进行分班,每班k(>0)个人,最后不足k人也编一班,问要编几个班?:n/k+(n%k!=0);
40)逻辑运算符:&&、||、!,优先级从高到低:!—>&&->||,!是单目运算符,优先级高于算术运算符,“&&”和“||”低于关系运算符;
41)
运算符 |
说明 |
优先级 |
! |
非 |
2 |
&& |
且 |
11 |
|| |
或 |
12 |