C语言的数据类型与基本操作.ppt





《C语言的数据类型与基本操作.ppt》由会员分享,可在线阅读,更多相关《C语言的数据类型与基本操作.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2本章主要内容本章主要内容1、常量和变量2、标识符与关键字3、整型数在计算机中的存储方式4、有符号的数据类型和无符号的数据类型5、运算符及表达式6、不同类型数据间的转换数据数据类型类型构造类型构造类型指针类型指针类型空类型空类型char (字符类型字符类型)enum(枚举类型)枚举类型)整型整型实型实型float (单精度单精度)double (双精度双精度)short int (短整型短整型)long int (长整型长整型)int (整型整型)数组类型数组类型结构类型结构类型共同类型共同类型基本类基本类型型数值类型数值类型文件类型文件类型C语言的数据类型 数据类型决定:数据类型决定:1.数
2、据占内存字节数数据占内存字节数2.数据取值范围数据取值范围3. 其上可进行的操作其上可进行的操作42.1.1 常量2.1 常量与变量常量与变量在程序运行过程中,其值不改变的量称为常量。在C语言中,常量有不同的类型:整型常量(int)短整型(short int)长整型(long int)无符号型(unsigned int) 实型常量(float和double) 字符常量(char) 字符串常量51整型常量十进制常量如15,19,123,-345等 。八进制常量以数字0 0开头如:05,012,0123十六进制常量以数字0 0和字母x x(或大写字母X)开头如:0 x10,0Xff,0X8十进制5
3、,10,83十进制数16,255,862实型常量用小数形式表示如:345,.345, 345.0,3.14159指数形式表示1.5e5,2.9e-71.5105,2.910-7。注意:指数形式的浮点常量E或e前面必须有数字,E或e后面必须为整数。73字符常量用一对单撇号括起来的一个字符如a,A,?, # 单撇号只是字符与其他部分的分隔符/定界符,不是字符常量的一部分。不能用双引号代替撇号,如a不是字符常量。字符型常量: 它是用一对单撇号括起来的一个字符如a,A,?, # 等 转义字符 有些字符和命令无法通过键盘直接输入,因而借用一个符号或者数字来表示,C语言用反斜杠“”来表示转义字符的起始符,
4、转义字符的表示有三个方面: 用反斜杠开头后面跟一个字母代表一个控制字符; ntrb回车换行 回车不换行 退格 水平跳格 代表字符,用代表字符。 用“”后跟1到3个八进制数代表ASCII码为该八进制数的字符;用“x”后跟12个十六进制数代表ASCII码为该十六进制数的字符。 101或 x41 表示A363或 xf3 表示 012或 x1A 表示 100或 x40 表示 【例1】打印人民币符号¥ 简称字符printf(Yb=);9例2.2 main () char ch; ch=362; printf (%cn,ch); printf (chinan101tn);运行结果:屏幕显示:china A
5、 105字符串常量hello“Programming in C“A”“a” “把用一对双撇号括起来的零个或多个字符序列称为字符串常量。字符串以双撇号为定界符,但双撇号并不属于字符串。要在字符串插入撇号,应借助转义字符。要处理字符串I say: Goodbye! 时,可以把它写为I say: Goodbye! 。字符串常量 字符串中的字符数称为该字符串的长度。字符串常量在机器内存储时,系统自动在字符串的末尾加一个“字符串结束标志”,它是转义字符“0”。 h e l l o 0例 字符串hello在内存中例 空串 01041011081081110注:注:字符与字符串的区别字符与字符串的区别. .
6、a a 0例 aa126符号常量【例2.3】符号常量举例#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);运行结果:total=300 定义定义:用一个标识符代表一个常量 #define 标识符 代表的常量使用符号常量的好处是: (1)含义清楚。 (2)在需要改变一个常量时能做到“一改全改”。 常用大写字母,与变量名区分开来。 变量 变量是指在程序的运行过程中,其值可以发生变化的量变量是指在程序的运行过程中,其值可以发生变化的量声明变量的目的:声明变量的目的:(1)存放需要
7、加工的初始值)存放需要加工的初始值(2)存放加工的中间结果)存放加工的中间结果(3)存放加工的最终结果)存放加工的最终结果需要理解的三个概念需要理解的三个概念变量名、变量的存储空间、变量的值变量名、变量的存储空间、变量的值int a=3;1101 afff地址表示地址表示存储空间存储空间a变量名变量名3变量的值变量的值141.变量的声明 变量声明的格式为:数据类型符 变量名1,变量2,变量名n;例如:int x;int y;或等效为:int x,y;注意:注意:定义变量的语句必须以“;”号结束,在定义一个语句中也可以同时定义多个变量,变量之间用“,”隔开。对变量的定义可以在函数体之外,也可以在
8、函数体或复合语句中。 152变量的初始化 C语言允许在说明变量的同时对其初始化, int sum=0; /*说明变量sum的类型为整型,初始值为0*/float pi=3.1416;char c=w;【例2.4】 整型变量的定义和引用。# include stdio.hmain()int x ,y,z,s; /*基本整型变量定义,一次可定义一个或多个变量*/x=3;y=4;z=5; /*整型变量的引用*/s=x+y+z; /*整型变量的引用*/printf(ns=%d,s);运行结果:运行结果:S=12注意:注意:(1)不同类型的数据在内存中占据不同长度的存储区,而且采用不同的表示方式。(2)
9、一种数据类型对应着一个值的范围。(3)一种数据类型对应着一组允许的操作。162.2 标识符和关键字-标识符一个标识符可由字母、数字和下划线组成 ;必须用字母或下划线开头;大小写要区分 ;不能用保留关键字作变量名 ;避免混淆的字母 ;例如 : l 与 I, o 与 0.例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $1231732 个关键字:(auto break case char constcontinue default do double elseenum
10、extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while-关键字182.3 整型数在计算机中的存储方式计算机系统的内存储器,是由许多称为字节的单元组成的,1个字节由8个二进制位(bit)构成,每位的取值为0/1。最右端的那1位称为“最低位”,编号为0;最左端的那1位称为“最高位”,而且从最低位到最高位顺序,依次编号。 原码、反码和补码的相关知识计算机中,所有的整数都是以补码的形式进行存储的正整数
11、的原码、反码和补码相同求负整数的补码步骤如下:(1)求负整数的原码(2)在原码的基础上求反码(3)在反码的基础上加1原码 5的八位二进制的原码为0000 0101-5绝对值的八位二进制表示为0000 0101正整数的原码是这个数本身。 负整数的原码求解方法: 负整数的绝对值用二进制表示,最高位用于表示符号,1表示负整数,0表示正整数。求-5的原码:1000 0101-5原码的八位二进制表示:求5的原码:反码 反码表示法规定:正整数的反码和原码相同负整数数的反码是对该数的原码除符号位外各位取反求5的反码:5的反码的八位二进制为0000 0101求-5的反码: -5的原码的八位二进制表示为1000
12、 0101-5的反码的八位二进制表示为1111 1010补码 补码表示法规定:正整数的补码和原码相同 负整数的补码是在该数的反码的基础上加1,即最后(即最右边)一位上加1。 求5的补码: 5的补码的八位二进制为0000 0101求-5的补码:-5的反码的八位二进制表示为1111 1010-5的补码的八位二进制表示为1111 1011 C 语言中所有的整数都是以补码的方式存储的 例:求-50在内存中的存储结果(假定用16位来存储)。-50绝对值的原码:0000 0000 0011 0010 -50的原码:1000 0000 0011 0010 -50的反码:1111 1111 1100 1101
13、 -50的补码:1111 1111 1100 1110 例:把内存中以补码形式存储的数据1111 1111 1111 0110转化为十进制整数。 数据的补码表示:1111 1111 1111 0110除符号位外,各位取反:1000 0000 0000 1001最低位加1: 1000 0000 0000 1010-10 例:把内存中以补码形式存储的数据1111 1111 1111 0110转化为十进制整数。 数据的补码表示:1111 1111 1111 0110除符号位外,各位取反:1000 0000 0000 1001最低位加1:1000 0000 0000 1010-10262.4 有符号的
14、数据类型和无符号的数据类型 类型类型标识符所占字节数取值范围及精度字符型signed char1-128+127unsigned char10255整型signed int4-214 783 648+214 783 647signed short int2-32 768+32 767signed long int4-214 783 648+214 783 647unsigned int404 294 967 295unsigned short int2065535unsigned long int404 294 967 295实型float4-3.410-383.41038,67位有效数字do
15、uble8-1.710-3081.710308,1516位有效数字long double16-1.210-49321.7104932,1819位有效数字272.5 运算符及表达式 算术算术运算符运算符:+ - + - * * / % + - / % + -关系关系运算符运算符: = != = !=逻辑逻辑运算符运算符:! & |& |位位运算符运算符: | & | &赋值赋值运算符运算符: : = += -= += -= 条件条件运算符运算符: ? :? :逗号逗号运算符运算符: : , ,地址地址运算符运算符:* * & &求字节数求字节数运算符运算符: sizeofsizeof强制类型转换
16、:强制类型转换:(type-name(type-name)分量分量运算符运算符: . -. -下标下标运算符运算符: 其他其他 :( ) -( ) -282.5.1 赋值运算符和赋值表达式1赋值运算符与赋值表达式 “=”就是赋值运算符。赋值表达式:由赋值运算符组成的表达式称为赋值表达式。它的一般形式:=如:x=5;赋值表达式的求解过程:将赋值运算符右侧的表达式的值赋给左侧的变量。赋值的含义是将赋值运算符右边的表达式的值存放到左边变量名标识的存储单元中。29说明:说明:(1)赋值运算符左边必须是变量,右边可以是常量、变量、函数调用或由常量、变量、函数调用组成的表达式。例如:x=10,y=x+10
17、,y=func()都是合法的赋值表达式,12=a,2*a=3*5+55都不是合法的赋值表达式。(2)赋值符号“=”不同于数学的等号,它没有相等的含义,“=”才表示相等。例如:C语言中x=x+1是合法的,而数学上不合法。(3)赋值运算时,当赋值运算符两边的数据类型不同时,将由系统自动进行类型转换。转换原则是:先将赋值号右边表达式的类型转换为左边变量的类型,然后赋值。赋值运算符的优先级仅仅高于逗号运算符,具有自右向左的结合性。应用举例 【例2.8】有语句int a=2,b=5,x,y;执行x=y=a+b;后x,y的值。abxy2577【例2.9】有定义:int a,b,c;求执行表达式a=(b=6
18、5)/(c=6);后a的值。abc65610复合赋值运算符 a =b +a=a+b 相当于 a=a-b a-=b a*=b a=a*b a/=b a=a/b a%=b a=a%b 相当于 相当于 相当于 相当于 y*=a+b; y=y*(a+b) 相当于 【例2.10】有定义: int a=6,b=8;求执行a*=b+=12后,a的值。 a6b8b+=12 b=b+12 20a*=ba=a*b 120 复合赋值运算符 【例2.11】 有定义:“int a=12;”,执行表达式a+=a-=a*=a后,a的值为( )。A12B144 C0 D132a*=aa12a=a*a 144a-=a a=a-
19、a 0a+=a a=a+a 0332.5.2 算术运算符和算术表达式算术运算符包括:+(加),-(减),*(乘),/(除),%(取余),+(增1运算符或称自增运算符),-(减1运算符或称自减运算符)。双目运算符的两个操作数类型可以不同,运算前遵循类型的一般算术转换规则自动转换成相同的类型,运算结果的类型与转换后操作数的类型相同。类型的一般算术转换规则的基本原则是值域较窄的类型向较宽的类型转换。 算术运算符和算术表达式 算术运算符包括:算术运算符包括:+,-,*,/,%,+,-左操作数右操作数运算符13+5 13.0+5结果为整数18 结果为浮点数18.0 d 97 结果为整数3 1/2 结果为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据类型 基本 操作

限制150内