《标识符与数据类型》PPT课件.ppt

上传人:tia****nde 文档编号:12734143 上传时间:2020-05-20 格式:PPT 页数:41 大小:777KB
返回 下载 相关 举报
《标识符与数据类型》PPT课件.ppt_第1页
第1页 / 共41页
《标识符与数据类型》PPT课件.ppt_第2页
第2页 / 共41页
《标识符与数据类型》PPT课件.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
嵌入式Linux系统开发技术第4讲标识符与数据类型,基本C语言的语法,标识符与关键字变量与常量C语言数据类型,C语言的字符集,C语言的基本符号可以分为4类英文字母:大小写26个,共52个;阿拉伯数字:0-9共10个数字;下划线与分号:特殊符号:运算符、分隔符,标识符,标识符定义用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列;标识符的规则标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线;C语言中的标识符大小写敏感;用户自定义的标识符不能与关键字同名;,标识符,示例:下面那些标识符是正确的?Arena、1sttest、arenas_count、marks40、oh!god、class_one、start.end、int,关键字,关键字的概念就是对编译器具有特定含义的标识符,是标识符的一个特殊的集合。C中的关键字C语言中ANSI标准制定的关键字共有32个;所有的关键字小写系统内置的标识符不要用于用户定义的标识符,C语言关键字,C语言数据存储,数据的存储使用变量或常量表示,数据15,内存,通过变量,可以为内存中的位置提供一个有意义的名称,变量,变量程序要为每一项数据分配内存,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。使用变量时必须“先定义,后使用”,变量的声明与初始化,变量的声明先定义后使用变量初始化的时机定义时初始化变量Datatypevariablename=value;例如:intnum1,num2=12;定义后初始化变量variablename=value;例如:intnum;num=12;,数据类型变量名称;,intvarName;,给变量赋值,除了给一个直接的值以外,还可以通过计算获得。,变量的命名,编译系统将大写字母和小写字母认为是两个不同的字符。在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符。,变量地址,变量的地址:变量在内存中总占用几个连续的字节,开始字节的地址,就是变量的地址。,2007,常量与变量,常量的概念:在程序运行中,其数值不能被改变的量;常量的分类直接常量:在程序中直接引用的数据;符号常量:用标识符来表示一个数据;定义形式:#define标识符常量数据,符号常量与const关键字,符号常量#defineCOUNT100提高代码的可读性,还可以做到一改全改使用const关键字constintCOUNT=100;,示例,要求用户输入圆的半径(radius),经过计算求出圆面积(area)并显示在控制台;要求:使用#define和const两种方式定义常量PI=3.1415926写程序实现游客租用游船的费用,功能如下:要求用户输入押金及使用游船的总时间,游船每小时30元,计算出应找回游客多少余额;,C语言数据类型,数据类型方便让我们对于不同的数据分类处理,数据类型的关键字,KIntage=21,score=90;Intage,score=90;#defineMAX_AGE200Printf(“%d”,score);整数类型的表示形式十进制:没有前缀,09的数字组成;12322、0、-232八进制:以打头,由07的数字组成;023、0101十六进制:以0X或0 x打头,由09、AF或af组成0 x12=18(十进制),数值的显示,使用八进制显示:%o、%#o使用十六进制显示:%x、%#x、%#X,#includeintmain(void)intage=20;printf(dec=%d;octal=%o;hex=%xn,age,age,age);printf(dec=%d;octal=%#o;hex=%#xn,age,age,age);return0;,其他整数类型,Short类型:用于仅需小数值的场合以节省空间;Long类型:用于使用大数值的场合Unsigned类型:用于只使用非负值场合;UnsignedintUnsignedshort类型Unsignedlong类型Signed:使数据的类型更加明确;Signedint;,整数类型的选择,使用最常用的int类型优先考虑unsigned类型当使用int类型不能表示一个数而使用long类型可以做到时,使用long类型;在int为32位的系统中,如果需要16位的值,那么使用short类型可以节省存储空间;,整型数据32位机,代码示例,#includeintmain(void)inti_number=10;shorts_number=10;longl_number=10L;unsignedui_number=10u;unsignedshortus_number=10U;unsignedlongul_number=10UL;printf(intsizeof:%dn,(sizeofi_number);printf(shortsizeof:%dn,(sizeofs_number);printf(longsizeof:%dn,(sizeofl_number);printf(unsignedintsizeof:%dn,(sizeofui_number);printf(unsignedshortsizeof:%dn,(sizeofus_number);printf(unsignedlongsizeof:%dn,(sizeoful_number);return0;,整数溢出问题,#include#includeintmain(void)intmax=INT_MAX;intmin=INT_MIN;unsignedintumax=UINT_MAX;printf(themax+1is%dn,max+1);printf(themin-1is%dn,min-1);printf(theumax+1is%un,umax+1);return0;,注意:整数溢出程序不会报错,所以写程序时一定要小心,当达到最大值时会从新从起点开始。,signed和unsigned类型,signed最重要的是修改char数据类型unsigned类型指定变量只能接受正值unsignedintvarNum;varNum=23123;加上unsigned前缀,正数的取值范围是原来的两倍Signed与unsigned修饰符可以与int和float数据类型一起使用unsignedint支持的范围是从0到4,294,967,295,常量与后缀,整数类型的显示,%u:显示无符号整数;%ld:显示long类型整数;%h:显示short类型数据符号可以结合使用:%lx、%lo、%hd、%ho、%lu、%lld、%llu写代码示例体验整数类型的显示,体验整数类型的显示,#include#includeintmain(void)unsignedintguessNumber=UINT_MAX;shortage=SHRT_MAX;longid=LONG_MAX;printf(guessNumberis%uandnot%dn,guessNumber,guessNumber);printf(ageis%hdandis%dn,age,age);printf(idis%ldandnot%hdn,id,id);return0;,注意:每个要显示的值都必须对应自己的格式说明符,并且显示值的类型要同说明符相匹配;,浮点数类型,浮点数类型分类单精度(float型)双精度(double型)长双精度型(longdouble)浮点数的表示形式小数形式:0.123;指数形式:3e-3规范化的指数形式:在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字.如:123.456可以表示为1.23456e2,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数,类型类型与范围32,与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。浮点数类型的表示1.23fF或f:表示float类型L或l:表示longdouble类型;,浮点数的输出格式,输出浮点数的格式%f:输出十进制计数法的float和double数字;%e:输出指数计数法的float和double数字;%Lf、%Le:输出longdouble类型的数字;,代码示例,#includeintmain(void)floatf_number=4321.0f;doubled_number=1.234e3;longdoubleld_number=1.234e-3L;printf(%fcanbewritten%e,andfloatsizeof:%dn,f_number,f_number,(sizeoff_number);printf(%fcanbewritten%e,anddoublesizeof:%dn,d_number,d_number,(sizeofd_number);printf(%Lfcanbewritten%Le,andlongdoublesizeof:%dn,ld_number,ld_number,(sizeofld_number);return0;,整型与浮点型比较,整数没有小数部分;浮点数可以有小数部分;浮点数的表示范围比整数大得多;对于一些算术运算,使用浮点数会损失更多精度;浮点数只是实际值的近似值;浮点数通常比整数运算慢;,浮点数的上溢与下溢,#include#includeintmain(void)floatf_max=FLT_MAX*FLT_MAX;floatf_min=FLT_MIN/FLT_MAX;printf(f_maxis%fn,f_max);printf(f_minis%fn,f_min);return0;,char类型,Char类型用单引号括起来的一个字符;注意只能是英文的单引号用于存储字母和标点符号之类的字符;实质是占一个字节的整型数(小整数)A65示例:a、m、$、%、1、5Char类型的赋值方式Chargender=M;Chargender=77;%c,char类型(ASCII码),转义字符,转义字符是一种特殊的字符常量。转义字符以反斜线“”开头常用的转义字符a:蜂鸣,响铃b:回退:向后退一格f:换页n:换行,光标到下行行首r:回车,光标到本行行首t:水平制表v:垂直制表:反斜杠:单引号:双引号”?:问号ddd:1到3位八进制数所代表的字符xhh:1到2位十六进制数所代表的字符0:空字符(NULL),什么都不做,代码示例,#includeintmain(void)printf(Howareyou?n);printf(Iamfine.nn);printf(Howareyou?t);printf(Iamfine.nn);printf(Howareyou?n);.printf(bIamfine.nn);printf(Iamfine.);printf(rHowareyou?nn);printf(note:nastibbkrpn);return0;,思考,如何选择数据类型一般使用int或float类型表示数字,使用char表示字符;选择数据类型时首先考虑变量用来存放什么类型值然后再根据存放值的最大值和最小值,进一步选择适当的类型和类型的修饰符,调试,调试简单代码最便捷方式:printf。利用_FILE_,_LINE_,_FUNCTION_实现代码跟踪调试#includeintmain(intargc,char*argv)printf(%s,%s,%dn,_FILE_,_FUNCTION_,_LINE_);return0;,ThankYou!,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!