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

标识符

概念:在程序中用来标识变量名、符号常量名、函数名、类型名、文件名等有效字符序列。

  1)标识符只能由字母(A - Z,a - z)、数字(0 - 9)和下划线( _ )三种字符组成,且首个字符必须为字母或下划线。

  2)在C语言中,大小写字母不等效。Sum和sum,i和I分别是两个不同的标识符。

  3)用户自定义的标识符不能与关键字同名。

 

2.2.1 常量和变量

1)常量

  常量又叫常数,在程序运行中其数值不能改变的量。例如:整型常量、实型常量、字符常量、字符串常量。

2)符号常量

  在C语言中,用标识符表示一个常量数据称为符号常量。在程序执行过程中不能再给它赋值。

#define 标识符 常量数据      

习惯上,符号常量名使用大写,变量名使用小写,以示区别。

3)变量

在程序运行中其值可以被改变的量。变量代表计算机内存中的某一处存储空间,该存储空间中存放的数据就是变量的值。

使用变量时必须先定义后使用。

 

2.2.2 整型数据

  1.整型常量的表示方法

    1)十进制形式:与数学上的整数表示相同。

    2)八进制形式:在八进制整数前加数字0。

    3)十六进制形式:在十六进制整数前加0x(数字0和字母X,大小写均可)。

注意:

  1)八进制的数码范围为0 - 7

  2)十六进制的数码范围为0 - 9和英文字母a - f(或A - F)表示10 - 15

 

2.整型变量分类

基本型,以 int 表示。

短整型,以 short int 表示,或以 short 表示。

长整型,以 long int 表示,或以 long 表示。

无符号型,其中无符号型又可以分为无符号整型,无符号短整型和无符号长整型,分别以 unsigned int ,unsigned short ,unsigned long表示。有符号会用一个二进制位表示正负,0为正,1为负。

类型 数的范围

字节数
char 0 -- 127 0 -- 27  - 1 1
signed char -128 -- 127 -27 -- 27- 1 1
unsigned char 0 -- 255 0 -- 2 - 1 1
int -32768 -- 32767 即 -215 -- (215 - 1) 2
unsigned int 0 -- 65535 即 0 --(216 - 1) 2
short -32768 -- 32767 即 -215 -- (215 - 1) 2
unsigned short 0 -- 65535 即 0 -- (216 - 1) 2
long -2147483648 -- 2147483647 即 -231 ---(-231 - 1) 4
unsigned long 0 -- 4294967295 即 0 -- (232 - 1) 4

注意:

  1)int型变量保存数据范围与编译系统为int型变量分配的字节大小直接相关。32位系统以上long与int等价 为4字节大小。32位系统以下int与short等价为2字节大小。

  2)长整型至少应该和整型一样长,而整型至少应该和短整型一样长。

  3)short int 至少为16位,long int 至少为32位。

  4)缺省的char 要么是signed char 要么是unsigned char这取决于编译器。

 

unsigned MAX + 1 == 0   unsigned MIN - 1 == MAX  signed MIN - 1 == MAX   signed MAX + 1 == MIN

sizeof()不是函数,是运算符。sizeof( x )作用是计算x在内存中所占字节数。x可以是常量、变量、表达式、标识符等。

 

2.2.3 实型数据

  1.实型常量的表示方法

    1)十进制形式:由数字(0 - 9)、正负号和小数点组成,且允许省略小数点前后的数字。例如:3.4, 4. , .3。

    2)指数形式:由十进制小数 + e(或E) + 十进制整数三部分组成。例如:3.14e-7表示 3.14 * 10-7

注意:e或E的两边必须有数,且后面必须为整数,前后数字间不得插入空格。

 

2.实型变量分类

实型变量分为单精度浮点型(float)和双精度浮点型(double)

  1. scanf: 格式字符串“%f”需要类型“float *”的参数 。  scanf: 格式字符串“%lf”需要类型“double *”的参数 。 
  2.  scanf: 格式字符串“%ld”需要类型“long *”的参数 。 scanf: 格式字符串“%d”需要类型“int *”的参数 。
数字后面不加L,默认的类型是int(整型)加L即表示长整型。

 

2.2.4字符型变量

  1.字符常量的两种表示形式:

    1)用单引号括起来的一个字符。例如:'A','*'等。

    2)用单引号括起来的由反斜杠( \ )引导的转义字符。例如:'\n','\t'等。

转义字符 含义 ASCII代码
\n 换行 10
\t 横向跳到下一制表位置(水平制表符) 9
\v 垂直制表符 11
\a 响铃 7
\b 退格 8
\r 回车 13
\f 换页(进纸符) 12
\\

反斜线符''\''

92
\' 单引号符 9
\'' 双引号符 34

 

2.字符变量

字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。

char c1,c2; 表示c1和c2为字符变量,各存放一个字符。

一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。

将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放在内存单元中去而是将字符对应的ASCII码放到存储单元中。

字符数据参与算术运算,实际上是将它们的ASCII码进行算术运算。

0 、A、a的ASCII码十进制分别为48、65、97。可以看出每一个小写字母比它相应的大写字母的ASCII码大32。

 

3.字符串变量

用一对双引号括起来的零个或多个字符序列称为字符串。字符串常量在机器内存储时系统会自动在字符串的末尾加一个“字符串结束符”它是转义字符"\0",该结束标志在内存中占一个字节,但不计入字符串长度。

例如:"Hello",在内存中占据6个字节空间,按顺序分别为H、e、l、l、o和NUL

字符串的长度是指该字符串中字符个数,不包括双引号。此字符串长度为5

NUL是字符串终止符,它本身并不看作是字符串的一部分。

变量初始化时指分配存储空间的同时存入数据。

 

2.3.2算术运算符和算术表达式

1.算术运算符

  + 表示加法。

  - 表示减法。

  * 表示乘法。

  / 表示除法。两个整数相除的结果是整数,5 / 3 == 1,舍去小数部分。取整

  % 表示取余或模。两侧必须为整型数据,8 / 6 == 2 。取余/模。正负号与被除数一致。7 % -4 == 3   -7 % 4 == -3

  不用求余运算符,求出余数: x - x / y * y

2.算术表达式和运算符优先级

乘除模加减

结合性是指同级运算时运算符的结合方向。从左往右的运算规则,称为左结合性。从右往左的运算规则,称为右结合性。

 

3.自增与自减

    ++i,--i //先增减1 再使用i

    i++,i-- /*先使用i 再增减1*/

 

2.3.3赋值运算符和赋值表达式

  1.赋值运算符

赋值符号 “ = ”的作用是将一个数据赋给一个变量。默认将赋值符号右边的数据转换成左边的变量类型。

  2.赋值表达式

用赋值运算符将变量和表达式链接起来的式子。求值规则:先求赋值运算符右侧“表达式”的值,然后赋给赋值运算符左侧的变量。

  3.复合赋值运算符

在赋值符“ = ”之前加上其它运算赋可以构成复合赋值运算符。

复合赋值运算符由赋值赋值运算符与算术、移位运算符、逻辑运算符组成。C语言规定可以用10种复合赋值运算符,即:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。 复合运算符是一个运算符,但功能上是两个运算符功能的组合。 a += b 相当于a = a + b

 

2.3.4逗号运算符和逗号表达式

在C语言程序中逗号" , "也是一种运算符。主要用于将若干表达式连接起来,逗号运算符又称顺序运算符。逗号表达式一般形式:

表达式1,表达式2,表达式3,……,表达式n。

逗号表达式的求解过程:自左向右,求解表达式1,求解表达式2,……,求解表达式n。整个表达式的值是表达式n的指。

逗号运算符是所有运算符中级别最低的。  例如:(a,b,c)是一个逗号表达式,它的值为c的值。

 

2.3.5条件运算符和条件表达式

  条件运算符( ?:)是C语言中唯一的三目运算符。条件表达式的应用举例: int a,b,max; max = a > b ? a : b;

  条件表达式一般形式:

  表达式1?表达式2:表达式3。如果表达式1结果为真(非零)则条件表达式最终结果为为表达式2的值,否则条件表达式最终结果为表达式3的值。

  说明:条件运算符的结合性:自右向左

例如:a > b ? a : c > d ? c :d; 应理解为 a > b ? a : (c > d ? c : d);

 

posted @ 2020-08-12 19:55  YangXinYi  阅读(691)  评论(0)    收藏  举报
//color="150,150,150"粒子的颜色设置 opacity="1"粒子的透明度 count="100"粒子的个数