版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式嵌入式Linux系统开发技术系统开发技术第4讲 标识符与数据类型基本C语言的语法 标识符与关键字 变量与常量 C语言数据类型C语言的字符集 C语言的基本符号可以分为4类 英文字母:大小写26个,共52个; 阿拉伯数字:0-9共10个数字; 下划线与分号: 特殊符号: 运算符、分隔符标识符 标识符定义 用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列; 标识符的规则 标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线; C 语言中的标识符大小写敏感; 用户自定义的标识符不能与关键字同名;标识符 示例:下面那些标识符是正确的?Arena、 1stte
2、st、 arena s_count、marks40、 oh!god、 class_one、start. end、int关键字 关键字的概念 就是对编译器具有特定含义的标识符,是标识符的一个特殊的集合。 C中的关键字 C语言中ANSI标准制定的关键字共有32个; 所有的关键字小写 系统内置的标识符不要用于用户定义的标识符系统内置的标识符不要用于用户定义的标识符C语言关键字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotointiflongregistereturnshortsignedsizeofstat
3、icstructswitchtypedefunionunsignedvoidvolatilewhileC语言数据存储 数据的存储使用变量或常量表示15内存中的数据数据数据1515内存内存通过变量,可以为内通过变量,可以为内存中的位置提供一个存中的位置提供一个有意义的名称有意义的名称变量 变量 程序要为每一项数据分配内存,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。 使用变量时必须“先定义,后使用”变量的声明与初始化 变量的声明 先定义后使用 变量初始化的时机 定义时初始化变量 Datatype variablename = value; 例
4、如:int num1,num2 = 12; 定义后初始化变量 variablename = value; 例如:int num;num = 12;数据类型数据类型 变量名称变量名称;int varName;给变量赋值,除了给一个直接的值以外,还可以通过计算获得。变量的命名 编译系统将大写字母和小写字母认为是两个不同的字符。 在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词 (或其缩写)作标识符。变量地址 变量的地址:变量在内存中总占用几个连续的字节,开始字节的地址,就是变量的地址。20072007常量与变量 常量的概念:在程序运行中,其数值不能被改变的量; 常量的分类
5、直接常量:在程序中直接引用的数据; 符号常量:用标识符来表示一个数据; 定义形式 :#define 标识符 常量数据符号常量与const关键字 符号常量#define COUNT 100提高代码的可读性,还可以做到一改全改 使用const关键字const int COUNT = 100;示例 要求用户输入圆的半径(radius),经过计算求出圆面积(area)并显示在控制台;要求:使用#define和const两种方式定义常量PI=3.1415926 写程序实现游客租用游船的费用,功能如下:要求用户输入押金及使用游船的总时间,游船每小时30元,计算出应找回游客多少余额;C语言数据类型数据类型方
6、便让我们数据类型方便让我们对于不同的数据分类对于不同的数据分类处理处理数据类型的关键字 K&R关键字 Int、Long、Short、Char、Float、double、unsigned、 C90关键字 Signed、void C99关键字 _Bool、_Complex、_ImaginaryInt类型 Int类型 Int age = 21; Int age =21,score=90; Int age,score=90; #define MAX_AGE 200 Printf(“%d”,score); 整数类型的表示形式 十进制:没有前缀,09的数字组成; 12322、0、-232 八进制:以打头,
7、由07的数字组成; 023、0101 十六进制:以0X或0 x打头,由09、AF或af组成0 x12=18(十进制)数值的显示 使用八进制显示:%o、%#o 使用十六进制显示:%x、%#x、%#X#include int main(void)int age = 20;printf(dec = %d;octal = %o;hex = %xn,age,age,age);printf(dec = %d;octal = %#o;hex = %#xn,age,age,age);return 0;其他整数类型 Short类型:用于仅需小数值的场合以节省空间; Long类型:用于使用大数值的场合 Unsig
8、ned类型:用于只使用非负值场合; Unsigned int Unsigned short类型 Unsigned long类型 Signed :使数据的类型更加明确; Signed int;整数类型的选择 使用最常用的int类型 优先考虑unsigned类型 当使用int类型不能表示一个数而使用long类型可以做到时,使用long类型; 在int为32位的系统中,如果需要16为的值,那么使用short类型可以节省存储空间;整型数据32位机类型占用内存字节数数的范围int4个字节short2个字节-3276832767long4个字节unsigned4个字节unsigned short 2个字节
9、065535unsigned long 4个字节代码示例#include int main(void)int i_number = 10;short s_number = 10;long l_number =10L;unsigned ui_number =10u;unsigned short us_number = 10U;unsigned long ul_number = 10UL;printf(int sizeof :%dn,(sizeof i_number);printf(short sizeof:%dn,(sizeof s_number);printf(long sizeof :%dn
10、,(sizeof l_number);printf(unsigned int sizeof :%dn,(sizeof ui_number);printf(unsigned short sizeof :%dn,(sizeof us_number);printf(unsigned long sizeof :%dn,(sizeof ul_number);return 0;整数溢出问题#include #include int main(void)int max = INT_MAX;int min = INT_MIN;unsigned int umax = UINT_MAX;printf(the ma
11、x+1 is %dn,max+1);printf(the min-1 is %dn,min-1);printf(the umax +1 is %un,umax+1);return 0;注意:整数溢出程序不会报错,所以写程序时一定要小心,当达到最大值时会从新从起点开始。signed和unsigned类型 signed最重要的是修改char数据类型 unsigned 类型指定变量只能接受正值 unsigned int varNum; varNum = 23123; 加上unsigned前缀,正数的取值范围是原来的两倍 Signed与unsigned修饰符可以与 int 和 float 数据类型一起
12、使用 unsigned int 支持的范围是从 0 到 4,294,967,295常量与后缀后缀字母用途示例U或uUnsigned类型123u、2345UL或lLong类型123L、-789lll 或LLLong long类型3LLU,3ll,3ullF或f单精度浮点型0.123F、3.1415f整数类型的显示 %u:显示无符号整数; %ld:显示long类型整数; %h:显示short类型数据 符号可以结合使用: %lx、 %lo、%hd、%ho、%lu、%lld、%llu 写代码示例体验整数类型的显示体验整数类型的显示#include #include int main(void)unsi
13、gned int guessNumber = UINT_MAX;short age = SHRT_MAX;long id = LONG_MAX;printf(guessNumber is %u and not %dn,guessNumber,guessNumber);printf(age is %hd and is %dn,age,age);printf(id is %ld and not %hd n,id,id);return 0;注意:每个要显示的值都必须对应自己的格式说明符,并且显示值的类型要同说明符相匹配;浮点数类型 浮点数类型分类 单精度(float型) 双精度(double型) 长
14、双精度型(long double) 浮点数的表示形式 小数形式:0.123; 指数形式:3e-3 规范化的指数形式:在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字. 如:123.456可以表示为1.23456e2注意注意: :字母e(或E)之前必须有数字,且e后面的指数必须为整数类型类型与范围32类型位数有效位数取值范围float32位至少6位至少double64位至少10位至少long double96位与double相同与double相同 与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分
15、采用规范化的指数形式。 浮点数类型的表示1.23f F或f:表示float类型 L或l:表示long double类型;浮点数的输出格式 输出浮点数的格式 %f:输出十进制计数法的float和double数字; %e:输出指数计数法的float和double数字; %Lf、%Le:输出long double类型的数字;代码示例#include int main(void)float f_number = 4321.0f;double d_number = 1.234e3;long double ld_number = 1.234e-3L;printf(%f can be written %e,
16、and float sizeof :%dn,f_number,f_number,(sizeof f_number);printf(%f can be written %e ,and double sizeof :%dn,d_number,d_number,(sizeof d_number);printf(%Lf can be written %Le,and long double sizeof :%dn,ld_number,ld_number,(sizeof ld_number);return 0;整型与浮点型比较 整数没有小数部分;浮点数可以有小数部分; 浮点数的表示范围比整数大得多; 对于
17、一些算术运算,使用浮点数会损失更多精度; 浮点数只是实际值的近似值; 浮点数通常比整数运算慢;浮点数的上溢与下溢#include #include int main(void)float f_max =FLT_MAX*FLT_MAX ;float f_min = FLT_MIN/FLT_MAX;printf(f_max is %fn, f_max);printf(f_min is %fn,f_min);return 0;char 类型 Char类型 用单引号括起来的一个字符;注意只能是英文的单引号 用于存储字母和标点符号之类的字符; 实质是占一个字节的整型数(小整数)A65 示例:a、m、$、
18、%、1、5 Char类型的赋值方式 Char gender=M; Char gender= 77; %cchar 类型(ASCII码)值值符号符号值值符号符号值值符号符号0空字符44,9132空格45-9233!46.933447/9435#48 570 995-36$58:9637%59;97 122a z38&6012541)63?12642*64127DEL(Delete键)43+65 90A Z转义字符转义字符是一种特殊的字符常量。转义字符以反斜线“”开头常用的转义字符 a: 蜂鸣,响铃 b: 回退:向后退一格 f: 换页 n: 换行,光标到下行行首 r: 回车,光标到本行行首 t: 水平制表 v: 垂直制表 : 反斜杠 : 单引号 : 双引号 ” ?: 问号 ddd: 1到3位八进制数所代表的字符 xhh: 1到2位十六进制数所代表的字符 0: 空字符(NULL),什么都不做 代码示例# include int main(void)printf(How are you?n);printf(I am fine.nn);printf(How are you?t);printf(I am fine.nn);printf( How are you?n);.printf( bI am fine.nn);printf( I am fine.); printf(rHow
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年食品加工设备租赁合同
- 2024年精装修住宅租赁节能减排合同
- 二零二五年度地下空间开发工程勘察设计合同3篇
- 2024年特许经营合同:连锁加盟
- 二零二五年度资产保全第三方担保借款资产保全合同模板3篇
- 二零二五年度历史文化保护项目合同文物保护与修复工程协议3篇
- 古诗词诵读《燕歌行 并序》说课稿 2024-2025学年统编版高中语文选择性必修中册001
- 二零二五年度办公室装修工程环保材料认证合同6篇
- 二零二五年度工厂废弃物综合利用合同3篇
- 2024年华师大新版选择性必修2语文下册月考试卷
- 北京市高校课件 开天辟地的大事变 中国近代史纲要 教学课件
- 监事会年度工作计划
- 2024中国近海生态分区
- 山东省济南市2023-2024学年高一上学期1月期末考试化学试题(解析版)
- 2024年时事政治试题【有答案】
- 2024年信息系统项目管理师(综合知识、案例分析、论文)合卷软件资格考试(高级)试题与参考答案
- 2024年认证行业法律法规及认证基础知识
- MT 285-1992缝管锚杆
- GB 18613-2020 电动机能效限定值及能效等级
- CRAC无线电技术观摩交流大会业余无线电应急通信演练基本规则
- 消防安全重点单位档案(参考)
评论
0/150
提交评论