Presentation is loading. Please wait.

Presentation is loading. Please wait.

目录 2.1数据类型 2.2常量 2.3变量 2.4库函数 2.5运算符及表达式 1.

Similar presentations


Presentation on theme: "目录 2.1数据类型 2.2常量 2.3变量 2.4库函数 2.5运算符及表达式 1."— Presentation transcript:

1 目录 2.1数据类型 2.2常量 2.3变量 2.4库函数 2.5运算符及表达式 1

2 2.1数据类型 数据类型分四大类: 2

3 2.1数据类型 1.基本数据类型 1)整型:不带小数点和指数的数 表2_1 整型数据常见种类及长度 整型种类 类型名
VC++6.0中占字节数 取值范围 有符号基本整型 [signed] int 4个字节 -231~231-1 无符号基本整型 unsigned int 0~232-1 有符号短整型 [signed] short[int] 2个字节 -215~215-1 无符号短整型 unsigned short[int] 0~216-1 有符号长整型 [signed] long[int] 无符号长整型 unsigned long[int] 有符号双长整型 [signed] long long[int] 8个字节 -263~263-1 无符号双长整型 unsigned long long[int] 0~264-1 3

4 2.1数据类型 1.基本数据类型 2)浮点型:带有小数点或指数的数 表2_2 浮点型数据常见种类及长度 浮点型种类 VC++6.0中占字节数
取值范围 float 4个字节 -231~231-1 double 8个字节 -263~263-1 long double 注:在Visual C++6.0中long double被作为double处理。 4

5 2.1数据类型 1.基本数据类型 3)字符型:由字母、数字、空白符、标点和特殊字符组成,以1个字节的ASCII存储。
(1)字母:小写字母a~z、大写字母A~Z; (2)数字:0~9; (3)空白符:空格符、制表符、换行符等,在字符常量和字符串常量中起作用; (4)标点符号及特殊字符:详见ASCII字符集。 表2_3 字符型数据常见种类及长度 字符型种类 类型名 vc++6.0中占字节数 取值范围 有符号字符型 [signed] char 1个字节 -27~27-1 无符号字符型 unsigned char 0~28-1 5

6 2.1数据类型 1.基本数据类型 4)枚举类型(enum) 指把可能的值一一列举出来,变量的值只可以在列举出来的值的范围内取。 6

7 2.1数据类型 2.构造数据类型 1)构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的数据类型;
2)一个构造类型的值可以分解成若干个成员或元素。每个成员都是一个基本数据类型或又是一个构造数据类型; 3)种类:数组类型([ ])、结构体类型(struct)和共用体类型(unoin) 7

8 2.1数据类型 3.指针类型(*) 4.空类型(void) 指针用来表示所指向内容在内存中的地址(&)。
 指针用来表示所指向内容在内存中的地址(&)。 4.空类型(void) 1)在调用函数时,通常应向调用者返回一个函数值,函数返回值具有一定的数据类型,应在函数定义及函数声明中给以说明; 2)有一类函数,调用后并不需要向调用者返回函数值,这种函数类型可以定义为空类型。 8

9 2.2常量 常量是指在程序运行期间值不发生变化的量 。 1.直接常量 1)数值型常量(也称常数) (1)整型常量 不带小数点的数值;
有三种形式:十进制、十六进制和八进制。 (2)浮点型常量 以小数形式或指数形式出现的数; 按双精度处理,分配8个字节; 有二种形式:十进制小数和十进制指数。 9

10 2.2常量 常量是指在程序运行期间值不发生变化的量 。 1.直接常量 2)字符型常量 (1)用西文的单引号括起来的单个普通字符或转义字符;
(2)单引号称为字符型常量的定界符; (3)普通字符指ASCII字符集包含的可输出字符; (4)转义字符是以\开头的特殊字符序列,将\后面的字符转换成特定的含义,用来表示控制代码。 10

11 2.2常量 表2_4常用的转义字符及功能 转义字符 转义字符的意义 ASCII代码 \n 回车换行,将当前位置移到下一行的开头 10 \r
回车,将当前位置移到本行的开头 13 \f 将当前位置移到下一页开关 12 \t 将当前位置水平跳到下一制表位置(tab) 9 \v 将当前位置垂直跳到下一制表位置 \b 退格,将当前位置后退一个字符 8 \\ 输出反斜线符"\" 92 \' 输出单引号符 39 \” 输出双引号符 34 \ooo 输出1~3位八进制数所代表的字符 \xhh 输出1~2位十六进制数所代表的字符 11

12 2.2常量 1.直接常量 3)字符串型常量 (1)用西文的双引号“”” 括起来的一串字符; (2)双引号称为字符串型常量的定界符;
(3)任何可输入的字符,如字母、数字、西文标点符号、中文标点符号和汉字等。 (4)空字符串:两个双引号之间没有任何字符。 12

13 2.2常量 1.直接常量 4)字符串型常量和字符型常量的区别 (1)字符型常量由单引号括起来,字符串型常量由双引号括起来;
(2)字符型常量只能是单个字符,字符串型常量则可以含一个或多个字符; (3)可以把一个字符型常量赋给一个字符型变量,但不能把一个字符串型常量赋给一个字符型变量(即字符数组); (4)字符型常量占一个字节的内存空间。字符串型常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符’\0’(ASCII码为0的字符),这是字符串结束的标志。 13

14 2.2常量 2.符号常量 格式:#define 符号常量名 常量 功能:用符号常量名代替直接常量。 注意:
1)符号常量的定义 格式:#define 符号常量名 常量 功能:用符号常量名代替直接常量。 注意: (1)符号常量名遵守标识符命名规则; (2)习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别; (3)此定义为宏预处理,行末没有分号; (4)符号常量不占内存,只是一个临时符号,在预编译时,用值代替名。 14

15 2.2常量 2.符号常量 2)符号常量的优点 (1)见名知义,容易阅读。 (2)一次定义,多次使用。 (3)一换全换,容易修改。 15

16 2.2常量 【例2_1】符号常量的使用。 #include<stdio.h> #define pi 3.14159
void main() { float area,r=10; area=pi*r*r; printf(“area=%f”,area); } 程序结果: 16

17 2.3变量 在程序运行期间,值可以改变的量称为变量 1.变量的种类 1)局部变量(也称为内部变量)
在函数体的声明部分定义。其作用域仅限于本函数内,离开本函数后不能再使用这个变量。 2)全局变量(也称为外部变量) 在函数外部定义的变量。它不属于哪一个函数,它的作用域是整个文件。 注意:同一个源文件中,在不同作用域内可以定义同名变量,在使用时,作用域小的变量屏蔽作用域大的变量。 17

18 2.3变量 2.变量的定义 1)定义方法 变量定义的一般形式为: 类型声明符 变量名,变量名,...;
类型声明符 变量名,变量名,...; 其中,类型声明符可以是基本数据类型、构造数据类型或指针类型, 如:int a; //a为整型变量 18

19 2.3变量 2.变量的定义 2)变量定义注意事项 (1)允许在一个类型声明符后,定义多个相同类型的变量。各变量名之间用逗号分隔。类型声明符与变量名之间至少用一个空格分隔。 long x,y; //x,y为长整型变量 unsigned p,q; //p,q为无符号整型变量 (2)最后一个变量名之后必须以西文分号“;”结尾。 (3)变量定义必须放在变量使用之前,局部变量的定义放在函数体中的声明部分。 19

20 2.3变量 2.变量的定义 3)定义变量小结 (1)在实际应用中,应根据需要设置变量的类型。能用整型时就不要用浮点型;如果所要求的精度不高,能用单精度型时就不用双精度型。 (2)根据需要合理选择变量的作用域。 (3)在同一作用域内不能定义同名变量;在不同作用域内可以定义同名变量。 20

21 2.3变量 3.变量的使用 1)变量的初始化 在C语言中,变量被定义之后,在第一次赋值之前,其值是随机的。
在程序中常常需要对变量赋初值,以便使用变量。 在变量定义同时赋初值的一般形式为: 类型声明符 变量1=值1,变量2=值2,……; 21

22 2.3变量 3.变量的使用 1)变量的初始化 例2_2】变量的初始化 #include<stdio.h> void main()
{ int a=3,b=5,c; c=a+b; printf("%d+%d=%d\n",a,b,c); } 程序结果: 22

23 2.3变量 3.变量的使用 2)变量的赋值与取值 (1)变量的赋值
用赋值语句把计算得到的表达式的值赋给变量。变量的值只有被赋以新值,旧值才被覆盖。对于数值类型变量,如果被赋的新值超出其可表示的范围,会出现溢出错误。 23

24 2.3变量 3.变量的使用 2)变量的赋值与取值 (1)变量的赋值 【例2_3】整型数据的溢出。
#include<stdio.h> void main() { int a,b; a= ; b=a+1; printf("%d,%d\n",a,b); } 由于Visual C++6.0中int型数据占4个字节,有符号整数的表示范围为 ~ ,所以对 加1得到的 溢出了。 24

25 2.3变量 3.变量的使用 2)变量的赋值与取值 (2)使用的变量值
将变量名写在表达式中,或给其他变量赋值,或用作函数的参数,表示使用变量的值。如例2_2中的语句c=a+b;是将变量a和b的当前值求和后赋给变量c。c的值变为新值,a和b的值被引用,不会被改变。 25

26 2.3变量 3.变量的使用 3)变量与符号常量的区别 (1)变量占用内存空间,在程序运行过程中,值可能发生变化;符号常量不占用内存空间,在程序运行过程中,值也可能发生变化。 (2)变量的定义及声明是用语句实现的,在执行阶段为变量分配相应的内存空间;符号常量的定义是通过宏定义命令#define实现的,在编译阶段就用直接常量代替了全部符号常量。 26

27 2.4库函数 1.数学函数 int abs( int x)求整数x的绝对值 double fabs(double x)求双精度实数x的绝对值
double sqrt(double x)计算x的开方 double pow(double x,double y)计算xy的值 double log10(double x)求lgx double exp(double x)求ex的值 double log(double x)求㏑x double sin(double x)计算sin(x)的值 double cos(double x)计算cos(x)的值 27

28 2.4库函数 2.输入输出函数 int scanf(char *format,args,…)从标准输入设备按format指定的格式把输入数据存入到“args,…”所指的内存中 int printf(char *format,args,…)把“args,…”的值以format指定的格式输出到标准输出设备 int getchar(void)从标准输入设备读取下一个字符int putchar(char ch)把ch输出到标准输出设备 char *gets(char *s)从标准设备读取一行字符串放入s所指存储区,用’\0’替换读入的换行符int puts(char *str)把str所指字符串输出到标准设备,将’\0’转成回车换行符 28

29 2.5运算符及表达式 1.运算符及表达式简介 1)运算符的种类 (1)算术运算符
用于数值运算:加+、减-、乘*、除/、求余%、自增++、自减--。 (2)赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=、-=、*=、/=、%=)和复合位运算赋值(&=、|=、^=、>>=、<<=)。 (3)逗号运算符 用于把若干表达式组合成一个表达式(,)。 29

30 2.5运算符及表达式 1.运算符及表达式简介 1)运算符的种类 (4)关系运算符
用于比较运算,包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)。 (5)逻辑运算符 用于逻辑运算,包括与(&&)、或(||)、非(!)。 (6)条件运算符 用于条件求值(?:)。 30

31 2.5运算符及表达式 1.运算符及表达式简介 1)运算符的种类 (7)指针运算符 用于取内容(*)和取地址(&)的运算符。
(8)求字节数运算符 用于计算数据类型所占的字节数(sizeof())。 (9)特殊运算符 函数或强制类型转换(())、下标([ ]),成员(→或.) (10)位操作运算符 按二进制位进行运算,包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)。 31

32 2.5运算符及表达式 1.运算符及表达式简介 2)运算符的优先级与结合性 (1)运算符的优先级
当在一个算术表达式中出现多个运算符时,要按照运算符的优先次序进行运算,优先级高的运算符先运算,优先级低的运算符后运算。在表达式中,优先级较高的先于优先级较低的进行运算。在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。 (2)运算符的结合性 左结合性(自左至右)和右结合性(自右至左)。 32

33 2.5运算符及表达式 1.运算符及表达式简介 2)运算符的优先级与结合性
(3)单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级高于关系和逻辑运算符。单目运算符、三目运算符、赋值运算符具有右结合性。 3)表达式 表达式是由运算符连接常量、变量、函数所组成的有意义的式子,单个常量、变量或函数也可以看成是特殊的表达式。每个表达式都有一个值和类型,表达式最终计算结果称为表达式的值,表达式的值的数据类型即为表达式的类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。 33

34 2.5运算符及表达式 2.算术运算符及算术表达式 1)算术运算符 运算符 名称 说明 + 加 具有左结合性 - 减 * 乘 / 除
参与运算量均为整型时,结果也为整型,向零取整。如果运算量中有一个是实型,则结果为双精度实型。具有左结合性 求余 a%b 34

35 2.5运算符及表达式 2.算术运算符及算术表达式 2)算术表达式
算术表达式是用算术运算符和括号将数值型常量、变量或函数连接起来的、符合C语法规则的、有意义的式子。 (1)表达式中所有符号必须一个一个并排写在同一行上,不能写成上标或下标的形式。 (2)不能省略乘号运算。 (3)表达式中所有的括号一律写成圆括号,并且括号左右必须配对。 (4)数学表达式中表示特定含义的符号要写成具体的数值。 35

36 2.5运算符及表达式 2.算术运算符及算术表达式 3)算术运算符的优先级及结合性 优先级从高到低依次是乘(*)和除(/)、求余(%)、加(+)和减(-)。其中,乘和除是同级运算,加和减是同级运算。 当遇到同一级运算符时,按结合性进行运算,算术运算符的结合性是左结合。如果表达式中含有括号,则先计算括号内表达式的值,有多层括号时,先计算内层括号的值,再求外层括号内表达式的值。 36

37 2.5运算符及表达式 2.算术运算符及算术表达式 【例2_4】整型除法或浮点型除法的运算。 #include<stdio.h>
3)算术运算符的优先级及结合性 【例2_4】整型除法或浮点型除法的运算。 #include<stdio.h> void main() { printf("%d,%d\n",20/7,-20/7); printf("%f,%f\n",20.0/7,-20.0/7); } 程序运行结果: 37

38 2.5运算符及表达式 2.算术运算符及算术表达式 【例2_5】求余运算。 #include<stdio.h>
3)算术运算符的优先级及结合性 【例2_5】求余运算。 #include<stdio.h> void main() { printf("%d\n",10%3); } 程序运行结果 : 38

39 2.5运算符及表达式 2.算术运算符及算术表达式 4)自增、自减运算符 自增1运算符记为“++”:使变量的值自增1。
自减1运算符记为“--”:使变量值自减1。 自增1和自减1运算符均为单目运算,具有右结合性。 可有以下几种形式: ++i //i自增1后再参与其它运算 --i //i自减1后再参与其它运算 i++ //i参与运算后,i的值再自增1 i //i参与运算后,i的值再自减1 39

40 2.5运算符及表达式 2.算术运算符及算术表达式 4)自增、自减运算符 【例2_6】自增自减运算。
#include<stdio.h> void main() { int i=10; printf("%d\n",i++); printf("%d\n",i--); printf("%d\n",++i); printf("%d\n",--i); printf("%d\n",-i++); printf("%d\n",-i--); } 40

41 2.5运算符及表达式 2.算术运算符及算术表达式 4)自增、自减运算符 【例2_7】复杂的自增自减运算。
#include<stdio.h> void main() { int i=5,j=5,p,q; p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j); printf("%d,%d,%d,%d\n",p,q,i,j); } 41

42 2.5运算符及表达式 2.算术运算符及算术表达式 转换方法:自动转换、强制转换
5)各类数值型数据之间的混合运算 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。 转换方法:自动转换、强制转换 (1)自动转换:发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换规则为由少字节类型向多字节类型转换。 42

43 2.5运算符及表达式 2.算术运算符及算术表达式 (2)强制类型转换 强制类型转换是通过类型转换运算来实现的。
5)各类数值型数据之间的混合运算 (2)强制类型转换 强制类型转换是通过类型转换运算来实现的。 一般形式为:(类型声明符)(表达式) 功能:把表达式的运算结果强制转换成类型声明符所表示的类型。在使用强制转换时应注意以下问题: ①类型声明符和表达式都必须加括号(变量可不加) ②强制转换和自动转换只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变原来对该变量定义的类型。 43

44 2.5运算符及表达式 2.算术运算符及算术表达式 (2)强制类型转换 【例2_8】强制类型转换。
5)各类数值型数据之间的混合运算 (2)强制类型转换 【例2_8】强制类型转换。 #include<stdio.h> void main() { float f=5.75; printf("(int)f=%d,f=%f\n",(int)f,f); } 44

45 2.5运算符及表达式 3.赋值运算符及赋值表达式 由简单赋值运算符 “=” 连接的式子称为简单赋值表达式。
1)简单赋值运算符和简单赋值表达式 由简单赋值运算符 “=” 连接的式子称为简单赋值表达式。 (1)简单赋值表达式格式:变量=表达式 (2)简单赋值表达式使用说明 ①赋值运算符的功能具有单向性,将表达式的值传送变量。 ②赋值运算符左边只能是单个变量名,不能是其它运算量。 ③赋值运算符右边可以是常量、变量、函数或表达式。 ④赋值运算符兼有计算与赋值双重功能。 ⑤赋值运算符具有右结合性。 ⑥赋值运算符的优先级低于算术运算符。 ⑦在赋值表达式末尾加分号就构成了赋值语句。 45

46 2.5运算符及表达式 3.赋值运算符及赋值表达式 2)赋值中的自动类型转换
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值运算符右边的类型换成左边的类型。具体规定如下: (1)实型赋给整型,舍去小数部分。 (2)整型赋给实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。 (3)字符型赋给整型,由于字符型为一个字节,故将字符的ASCII码值放到整型量的低八位中,高位为0。整型赋给字符型,只把低八位赋给字符量。 46

47 2.5运算符及表达式 3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 【例2_9】赋值运算中的自动类型转换。
#include<stdio.h> void main() { int a,b=322; float x,y=8.88; char c1='k',c2; a=y; x=b; printf("%d,%f ",a,x); a=c1; c2=b; printf("%d,%c",a,c2); } 47

48 2.5运算符及表达式 3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 (4)右边量的数据类型长度比左边长,丢失的部分按四舍五入舍入。
【例2_10】赋值运算中的自动类型转换。 #include<stdio.h> void main() { float pi= ; int s,r=10; s=r*r*pi; printf("s=%d\n",s); } 48

49 2.5运算符及表达式 3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 【例2_11】不同类型的量参与运算。
#include<stdio.h> void main() { long x=5,y=6; int a=7,b=8,c,d; c=x+a; d=y+b; printf("c=x+a=%d,d=y+b=%d\n",c,d); } 49

50 2.5运算符及表达式 3.赋值运算符及赋值表达式 在赋值符之前加其它二目运算符可构成复合赋值符。
(3)复合的赋值运算符 在赋值符之前加其它二目运算符可构成复合赋值符。 +=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。 构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等效于: 变量=变量 运算符 表达式 50

51 2.5运算符及表达式 4.逗号运算符及逗号表达式 (2)逗号表达式格式 (3)逗号表达式功能 (1)逗号运算符和逗号表达式
逗号运算符是把两个表达式连接起来组成一个表达式,称为逗号表达式。 (2)逗号表达式格式 逗号表达式的一般形式为: 表达式1,表达式2 (3)逗号表达式功能 逗号表达式的求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。 51

52 2.5运算符及表达式 4.逗号运算符及逗号表达式 【例2_12】逗号表达式的求值。 #include<stdio.h>
(3)逗号表达式的值 【例2_12】逗号表达式的求值。 #include<stdio.h> void main() { int a=2,b=4,c=6,x,y; y=((x=a+b),(b+c)); printf("y=%d,x=%d",y,x); } 52

53 2.5运算符及表达式 4.逗号运算符及逗号表达式 (1)扩展形式:表达式1,表达式2,…表达式n 整个逗号表达式的值等于表达式n的值。
(4)逗号表达式注意事项 (1)扩展形式:表达式1,表达式2,…表达式n 整个逗号表达式的值等于表达式n的值。 (2)程序中使用逗号表达式,通常是要分别计算逗号表达式内各表达式的值,并不一定要计算整个逗号表达式的值。 (3)并不是在所有出现逗号的地方都组成逗号表达式,如在变量定义中和函数参数表中的逗号只是用作各变量之间的分隔符。 (4)赋值运算符的优先级高于逗号运算符。 53


Download ppt "目录 2.1数据类型 2.2常量 2.3变量 2.4库函数 2.5运算符及表达式 1."

Similar presentations


Ads by Google