版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、义 2oioin中I科学技术夭事数据类型,运算符和表达式1-2.3.4.数据类型、常量,变暈的定义 运算符的种类、优先级和结合方向 表达式的类型和求值简单的c程序设订及基本输入输出C的数据类型(Data Types)基木类型整型、了符型、浮点型(实型)、枚举类型构造类空数组类型、结构体类型、共用体类型播计类型空类型义 2oio数据类型.常量和变量 个程序的算法设让必须考虑数据结构数据结构是齐种类型数据的俎织形式 C语言的数据有常鼠和变虽之分常屋和变虽都分别属J-数据类型程序中川到的所仃数据郁八仃定类型常量(Constants)宇设叶冷义2010ev中w科学技术大事常量程序运行过程中.其值不能彼
2、改变的最例如 土 12. -6.7. r a1. 符号常嵐(Symbolic Constants)用一个标识符代表的常量,相当于用标识符把一个常量瞽换卜來习惯上符号常鼠名用大写字母优点:含义淸楚厲观:修改时一改全改cWSfl.VISHWA 2010*#define PRICE#define NUMint main ()3012total七 ota:L2PRICED total12 * 30;4 J* PRICE2 ;printf (Zo 七 al=%du f toe al);常量示例不会被替换变量(Variables)其值可以改变的呈称为变量变量有一个名字,即标识符变量在存储器中占据一定的存储
3、单元变量占据存储空间的大小由其类型决定程序中的变最参与计算时,从这个变屋所占抓的存储单元里取 出存储的数据的值变屋要“先定义,后使用”7V中HM*tt*X*标识符(Identifier)标识符变就名、符号常帚名、丙数名、类昭标识符命名规范由字母、数字、下划线(Underscore, )组成第一个字符必须为字母或下划线C语言标识符是大小写域感的标识符的名称一般应具有一定的含文不要与C语育关键字(Keywords)重复 一般不要使用以下划线开头的标识符autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifi
4、ntlongregisterreturnshortsignedstaticsizofstructswitchtypedefunionunsignedvoidvolatilewhileANSI C共有32个关键字otrflfttH*义 2oio)oX中BI科*技术犬事标识符示例正确的标识符 students numlx _SUM. _1_2_3 MyName my name. my_name错误的标识符 room3-l包含了其他字符(减号) 2men以数字开头 long与关键字重复 Mr. Zhu包含了其他字符(小数点)变量的存储CBWBMSHW义 201012V中科律技术大事义 2010njr
5、整型(Integer)榕型常里的衣小力法整型变量幣空数据在内存中的存放形式整型变虽:的类型整型变显的定义整型数据的溢出 格型常吊的类型整型常量的表示方法义 201016W中*:*丨进制(Decimal)例如.123、-456、0八进制(Octal)以0开头,不得含冇8或9例如,0123、-0456古例,0138、0 912 十六进制(Hexackcimal)以Ox或OX开头或入尺表示10-15 例如,0x123. -0X45. 0x3AB 0xabc义 2oio】8貫*整型数据在内存中的存放方式二进制形式举例,int 1=50 ; /*int炎型占2字节*/0 0 | 0 | 0 10 | 0
6、 I 0 I o 0 01 | | 0 | 0 | 1高地址字节I低地址字节I补码(Complement)正数:与原码一致,首位为0负数:绝对值取反加一,首位为1零:各位全为0补码举例举例 int i-50;l12 r fi /50的原码取反50的补码0SB110 0Biojr整型变量的分类按占用存储空何的人小划分基本幣型int知整型心整型 按仃无符号划分有符号无符号short int long intsigned unsigned上述两种分类方式组合对得到6种类型计冷义 2010S17V中*有符号数与无符号数整数的长度整数的类型与长度教材P13 short:占2字 VT ( 16bit) l
7、ong:占4字节(32bit) xnt:占2或4宁节(16或32bit) 2Bytes = short W int W long = 4Bytes若需豐辂确的K度.可选用short或long举例 BC3. 1:int 长度为 2Bytes gcc:int氏度为4Bytes 数拥2度山编讦器指山.而編f器的设计受处珅器的臥制计冷义 2010K18V中科学技术大学有符号数二进制补码表示,首位为符号位指定signed或缺省情况,即为冇符号数无符号数没冇符号位,只能表示非负数无符号数类型必须指定为unsigned若把负数赋值给无符号数,则把该负数的补码当作无符号 数进行处理有符号数与无符号数举例int
8、 main ()irrt i ;unsigned j;50的补码1111111111025的补码m 11111111132743的补码/原码0 11100 0 1110 0 111】9貫整型数据的取值范CBWWffttltWX 2010W20JT中I科学技术犬伊类型长度(bit)取值范围signed short int16-215、215-1unsigned short int160 2”-lsigned int16 or 32215(31) 215(31)-1unsigned (mt)16 or 320 216(32)-1signed) long (mt32-231 231-1unsigne
9、d long mt320 232-l整型变量的定义(Defirdtion)义 2010W24M定义形式 int a, b; unsigned c; long d; unsigned short e;变虽的定义一般放亦一个凶数开头的声明部分.关于变量定义的貝 体内容在以后相关帝节见详细介绍catra.*tt 计义 2010整型变量的定义与使用举例W21 e义 2010K27V中M*!*规范化指数形式规范化指数形式类似于“科学计数法” e或之前的小数中,小数点前面有且仅有-个斗传数字举例,123.456 规范化形式 1.23456e2x 1.23456E+002 非规范彳匕丿冷式,123.456、
10、 12 3456el、 12345.6e-2、 0123456e3、 12345600e5浮点型数据在内存中的存放方式 一进制规范化抬数形式小数部分2度与能衣示的榊度仃关指数部分长度与能衣示的数值范国有关o o ? 10()()符号$指数部分W小数部分/义 2oio2jr中BM*tt*X*v=(-ir(i./)x2e29貫义 2010浮点型变量的类型分类floatdouble单精度双精度 K双粘度 long double长度和取值范围类型长度(bit)有效数字绝对值范围float326710-3710double64151610-307-10308long double128181910说广
11、1()4932浮点型数据的舍入误差由丁沼点型变量能够衣示的冇效数字冇限,将冇效位以外的数字舍左 造成误差举例float a=123456.789e5, b;b = a + 20; /*b=12345678920?*/ printf(M a=%fnb=%fnn.b);运行结果a=12345678848.000000b=12345678848 000000义 2oioK31V中 BW*a*x*浮点型常量的类型类型后缀 F 表示常量是一个单精度型浮点数 1、L 表示常量是一个氏双耕度型浮点数 无任何后缀的浮点型常量视作双粘度型对浮点型变量赋值 一个浮点羽常戢町以赋值给任何类羽的浮点世变 量根据变量类
12、型截取常量的相应有效数字注意防止出现溢出字符型(Character)字符型常量字符型变量字符型数据在内存中的存放形式字符型数据的使用方法字符串常就义 201033貫中IS科学技术犬事义 2010U36貫中*:*字符型常量单引号括起来的一个字符举例,V、7Q、111. ,J、1 ?1. 例,abc*、 1 ,我,.转义字符以开头的特殊字符 Addd( 1到3位8进制数ASCII码代表的字符 Axhh* 1到2位16进制数ASCII码代表的字符 举例, n W、 W* 1 X1 * . 1 u 1 1 123r 1 x3Ar.一q字符型变量字符型变暈只能存放个字符定义与使用:int main ()
13、char cl F c2; /定义耳呈 ul和cj2*/cl = r a * ;/*cl 勺值为,a/c2 = 2、;/*c2的值为,2f/字符型数据在内存中的存放形式caw*n 义 2oio3or*B*a*x* 一个字符型数据占一个字节的空间字符熨数据以KASCllHP. 364)形式存放cl=r a1(ASCII=97)01100001cl=r 2r(ASCI1=50)00110010字符型数据的存放形式与只占一个字节长度的整型 数据完全相同字符型数据的使用方法可以把字符型数据视作一种氏度为1字节的黑型数据处当使用字符型数执;时,弓使用这个字符的ASCII码( 一个8位整数)足完全一样的字
14、符型数据的川法与整型数据完全一样,包插运舁 、赋值、输入、输出等字符型数据使用过程中,同样需耍注总溢出、符号 等问题是字符还是整数,只有在输出时才有惠义义 201037?*BIM*tt*X*字符型数据使用举例int main ()c = 97;/*i = c + 20;/*j =、2rprin七f(M%c, %dnn f c117*/50*/c); /*a, 97/字符型变量的符号字符熨变量与格型变杲一样,也分为有符号数与无 符号数无符号字符 unsigned char c;举例,表示一个班级的人数256)赋值和使用中需:要注总的问题,与整型变量相同义 201039中 aw*a*x*字符串(S
15、tring)常量表示形式一对双引号括起来的字符序列引号内可以包扌舌o个、1个或多个字符 字符序列屮的特殊字符川转义字符表示 举例,n abcn x ”a”、”、我举例,”124”、”$#!”、nC: HOlEn字符常駅和字符出常ht足不同类申的数据例如,与”a”是不同的 不能把一个字符串赋值给一个字符型变量csafl.riftHWX 2010中BM*tt*X*字符串在内存中的存放方式举例 TESTa在内存中每个字符按顺序存放字符串结尾有一个空字符(ASCII=O,O)作为字符 串结束标志字符串结束标志0是不能显示的,在字符串常量中 ,也不用显式写出来CBAfl宇Ift卄义2010中术丈事駕变量
16、赋初值(Initialization)在定义变量的同时对变屋赋值(初始化) 举例 int a=l;/*4 目当于 int a; a=l; */ int a, b=3;/*对b賦初值,a没有初值*/ int b, c,a=b=c=100;/*对三个变量赋同样的初值*/变帛使用前,一般应先对它赋值*义 2010各类数值型数据间的混合运算及类型转换整型、字符型、浮点型数据可混合运算混合运算时,不同类型的数据按照一定的规则先转 换为同一类型,然后再运算=046貫 运算符的优先级优先级运算符的运算次按优先级由岛到低执行町以川圆扔号()改变运算符的执行次丿予举例 a+b*c-d/e计算顺序:(a+ (b*C) ) - (d/e)/先算乘除,后算加减/ /*乘除比加减优先级高* / (a+b)*(c-d)/e/*先算加减,后算乘除*/义 2oio运算符的结合方向结合方向当一个操作数两侧的运算符优先级相同时,运算次序按 照结合方向的规定进行举例 a+b-c/+和-的结合方向都是从左向右/b先与+结合计算a+b,然后执行减法*/ a=b=l/=的结合方向是从右向左,先计算b=l*/义 2010运算符的结合方向规则CKWfi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论