您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > 武汉理工大学C语言-第3章-数据类型2015
第三章数据描述与基本操作3.1基本数据类型3.2运算符和表达式3.3输入输出操作3.4顺序结构程序设计3.1基本数据类型3.1.1C语言的数据类型3.1.2常量和变量3.1.3数据类型转换3.1.1C语言的数据类型(一)什么是数据类型?(二)C语言的数据类型有哪些?(-)什么是数据类型数据:计算机能够处理数值、文字、声音、图形、图像等信息,均称为数据。数据类型:根据数据描述信息的含义,将数据分为不同的种类,对数据种类的区分规定,称为数据类型。不同的数据类型,在内存中的存储结构也不同,占用空间也不同,能执行的操作和运算也不同。(例255与255.0)C的数据类型见下表:C数据类型基本类型构造类型指针类型空类型void字符类型char枚举类型enum整型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作(二)数据类型总表在程序中对用到的所有数据都必须指定其数据类型.整型数据1.整型数据的分类最基本的整型类型基本整型(int型):占2个或4个字节短整型(shortint):VC++6.0中占2个字节长整型(longint):VC++6.0中占4个字节双长整型(longlongint):C99新增的2.整型变量的符号属性整型变量的值的范围包括负数到正数可以将变量定义为“无符号”类型扩充的整形类型:有符号基本整型[signed]int;无符号基本整型unsignedint;有符号短整型[signed]short[int];无符号短整型unsignedshort[int];有符号长整型[signed]long[int];无符号长整型unsignedlong[int]有符号双长整型[signed]longlong[int];无符号双长整型unsignedlonglong[int]整型数据(signed)int型:0111111111111111最大:327671000000000000000最小:-327681111111111111111unsignedint型:最大:655350000000000000000最小:0例如:假定int型占2个bytes,即16位(bit)。浮点型数据浮点型数据是用来表示具有小数点的实数float型(单精度浮点型)编译系统为float型变量分配4个字节数值以规范化的二进制数指数形式存放浮点型数据是用来表示具有小数点的实数float型(单精度浮点型)double型(双精度浮点型)编译系统为double型变量分配8个字节15位有效数字longdouble(长双精度)型浮点型数据字符型数据字符是按其代码(ASCII码--整数)形式存储的C99把字符型数据作为整数类型的一种字符型数据在使用上有自己的特点1.字符与字符代码大多数系统采用ASCII字符集字母:A~Z,a~z数字:0~9专门符号:29个:!”#&‘()*等空格符:空格、水平制表符‘\t’、换行‘\n’等不能显示的字符:空(null)字符(以‘\0’表示)、鸣铃(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等字符型数据2.字符‘1’和整数1是不同的概念:字符‘1’只是代表一个形状为‘1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节001100010000000000000001字符型数据几种基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int32-2147483648~2147483647(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongunsignedshort160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127无unsignedchar80~255说明:数据类型所占字节数随编译器不同而不同,上表以VC++6.0为例:举例:数据溢出(Overflow)的危害一台安装了Windows®95/98的机器,如果连续运行49.7天,可能死机原因:Windows自启动时刻起,有一个计数器,记录系统已经运行了多少毫秒。这个计数器是unsignedlongunsignedlong的最大值:4294967295一天有24*60*60*1000=86400000毫秒4294967295/86400000=49.71026961805……当49.7天的时候,此计数器会溢出,引起死机(一)常量(二)变量3.1.2常量与变量1.常量:在程序运行过程中,其值不能被改变的量整型常量:如1000,12345,0,-345实型常量十进制小数形式:如0.34-56.790.0指数形式:如12.34e3(代表12.34103)字符常量:如‘?’转义字符:如‘\n’字符串常量:如“boy”符号常量:#definePI3.1416字面常量3.1.2常量与变量整型常量(整常数)三种形式:十进制整数:由数字0~9和正负号表示.如123,-456,0八进制整数:由数字0开头,后跟数字0~7表示.如0123,011十六进制整数:由0x开头,后跟0~9,a~f,A~F表示.如0x123,0Xff例12与12L例30000为int型65536为longint型整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L,认为它是longint型常量(假定int占2bytes)问题:0123=()100x123=()100Xff=()1083291255问题:0123=()100x123=()100Xff=()10实型常量(实数或浮点数)表示形式:十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5,1.2E-3.5实型常量的类型默认double型在实型常量后加字母f或F,认为它是float型字符常量定义:用单引号括起来的单个普通字符或转义字符.字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义\n\v\r\a\‘\ddd\t\b\f\\\“\xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\04’-----------’◆’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------‘\101’-------‘\x41’--------65如‘A’——65‘a’——97‘0’——48‘\n’——10如‘a’‘A’‘?’‘\n’‘\101’转义字符:C中定义了一些反斜线后面跟一个字符或一个代码值表示那些不能显示的ASCII字符,称为转义字符。例转义字符举例main(){printf(\101\x42C\n);printf(“Isay:\“Howareyou?\”\n);printf(\\CProgram\\\n);printf(Turbo\'C\');}运行结果:(屏幕显示)ABCIsay:“Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}运行结果:屏幕显示:=打印机输出:¥字符常量与字符串常量不同字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个‘\0’作为字符串结束标志hello\0例字符串“hello”在内存中aa\0例‘a’“a”例空串“”\0例:charch;ch=“A”;例:charch;ch=‘A’;字符与字符串的区别有哪些?定界符不同:字符常量使用单引号‘’,而字符串常量使用双引号“”;长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志‘\0’。例#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=‘D’;total=num*PRICE;ch1=ch2-‘A’+‘a’;printf(“total=%f,ch1=%c\n”,total,ch1);}宏定义变量定义输出结果运行结果:total=37.500000,ch1=d在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define标识符常量符号常量编译程序根据变量定义为其分配指定字节的内存单元…...地址inta=1,b=-3,c;abc2字节2字节2字节地址地址…...内存1-3随机数变量概念:表示其值可以改变的量变量名与变量值(变量名实际上是一个符号地址,对应着内存中的存储单元)变量定义的一般格式:数据类型变量1[,变量2,…,变量n];变量初始化:定义时赋初值例:inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;intx=y=z=1;变量的使用:先定义,后使用例1intstudent;stadent=19;//Undefinedsymbol‘statent’infunctionmain例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfunctionmain变量定义位置:一般放在函数开头main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}变量定义可执行语句整型变量占字节数随机器不同而不同,一般占一个机器字short≤int≤long可用sizeof(类型标识符)测量实型变量float:占4字节,提供7位有效数字double:占8字节,提供15~16位有效数字字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/没有字符串变量,用字符数组存放变量使用要注意长度不要对变量所占的内存空间字节数想当然用sizeof获得变量或者数据类型的长度以下程序在TurboC2.0和VisualC++6.0下的运行结果不同#includestdio.hvoidmain(){printf(DatatypeNumberofbytes\n);printf(-------------------------------\n);printf(char%d\n,sizeof(char));printf(shortint%d\n,sizeof(short));printf(int%d\n,sizeof(int));printf(longint%d\n,sizeof(long));printf(float%d\n,sizeof(float));print
本文标题:武汉理工大学C语言-第3章-数据类型2015
链接地址:https://www.777doc.com/doc-5170452 .html