语言基础知识汇总精选课件.ppt
《语言基础知识汇总精选课件.ppt》由会员分享,可在线阅读,更多相关《语言基础知识汇总精选课件.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于语言基础知识汇总第一页,本课件共有68页21 C+1 C+语言的字符集与词汇语言的字符集与词汇1.1.字符集字符集(1)(1)字母字母 A B C D A B C D Z a b c d Z a b c d z z(2)(2)数字数字 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9(3)(3)特殊符号特殊符号 空格空格 !#$%&.!#$%&.()*+,-?/:;/:;_|_|第二页,本课件共有68页32.2.词汇:五类词汇:五类 (1)(1)关关键键字字(保保留留字字):):系系统统预预定定义义且且有有专专门门含含义义的的单单词词,不不允允许许另另作它用作它
2、用 .C+.C+的关键字包含了的关键字包含了C C语言的几乎所有关键字语言的几乎所有关键字 .C+.C+的关键字随的关键字随C+C+的发展而不断增加的发展而不断增加 (2)(2)标识符:由程序员为程序中的各种成份定义的名字标识符:由程序员为程序中的各种成份定义的名字 .以字母或以字母或_ _开头开头,由字母、由字母、_ _、数字组成、数字组成 .不能是关键字不能是关键字 .C+.C+中的标识符区分大小写中的标识符区分大小写 .见名知义的原则见名知义的原则 .C+.C+系统对标识符的长度有一定限制系统对标识符的长度有一定限制 (3)(3)直接常量直接常量 (4)(4)运算符运算符 (5)(5)分
3、隔符:用来分隔不同的语法成份的单词分隔符:用来分隔不同的语法成份的单词 空格空格 ;#;#()/*/*/*C+*C+的两种注释的两种注释:./*./*/./*/./注释到行尾注释到行尾第三页,本课件共有68页42 2 基本数据类型、运算符与表达式基本数据类型、运算符与表达式一一.数据类型数据类型每一项数据都唯一的属于某种类型每一项数据都唯一的属于某种类型每一数据类型都有一个明确定义的值的集合每一数据类型都有一个明确定义的值的集合每一类型的数据占用相同大小的存储空间每一类型的数据占用相同大小的存储空间同一类型的数据可以进行相同类型的运算同一类型的数据可以进行相同类型的运算数据类型数据类型简单类型
4、简单类型复合类型复合类型指指针针类类型型*用用户户定定义义类类型型enum基本类型基本类型整整 型型int浮浮 点点 型型float字字 符符 型型char空空 类类 型型void布布 尔尔 型型bool数数组组结构体结构体struct共用体共用体union类类class1.C+1.C+的数据类型的数据类型基基本本类类型型是是由由系系统统定定义义,各各种语言都具备的类型种语言都具备的类型复复合合类类型型与与指指针针类类型型都都属属于用户定义类型于用户定义类型第四页,本课件共有68页52.2.基本类型基本类型intint型:整型型:整型 VCVC中占中占4 4字节字节floatfloat型型:浮
5、点型浮点型 4 4字节字节charchar型型:字符型字符型 1 1字节字节voidvoid型型:空类型空类型boolbool型型:布尔型布尔型 1 1字节字节 值为值为 true true 或或 falsefalse*修饰说明符修饰说明符longlong与与shortshort、signedsigned与与unsignedunsignedlonglong和和shortshort修改整型具有的最大值和最小值修改整型具有的最大值和最小值signedsigned和和unsignedunsigned告告诉诉编编译译器器如如何何处处理理整整型型和和字字符符型型数数据据的最高位的最高位floatfloa
6、t型型可可用用doubledouble和和longlong doubledouble修修饰饰,修修改改实实型型数数据据的的表表数范围和精度数范围和精度第五页,本课件共有68页6类型名类型名字节数字节数取值范围取值范围 bool bool1 1 true true、falsefalse char char1 1-128-127-128-127 signed char signed char1 1-128-127-128-127 unsigned char unsigned char1 1 0-255 0-255 int int4 4-2-231 31-2-23131-1-1 signed int
7、 signed int4 4-2-231 31-2-23131-1-1 unsigned int unsigned int4 4 0-2 0-23232-1-1 signed short int signed short int2 2-32768-32767-32768-32767 unsigned short int unsigned short int2 2 0-2 0-21616-1-1 signed long int signed long int4 4-2-231 31-2-23131-1-1 unsigned long int unsigned long int4 4 0 0 -2
8、-23232-1-1 float float4 4-3.4E(+/-)38-3.4E(+/-)38-3.4E(+/-)38-3.4E(+/-)38 double float double float8 8-1.7E(+/-)308-1.7E(+/-)308-1.7E(+/-)308-1.7E(+/-)308 long double float long double float1010-3.4E(+/-)4932-3.4E(+/-)4932-3.4E(+/-)4932-3.4E(+/-)4932C+C+中的全部基本类型中的全部基本类型第六页,本课件共有68页7二二.运算符与表达式运算符与表达式
9、 1.1.运算符运算符算术运算符:算术运算符:+-+-*/%+-*/%+-关系运算符:关系运算符:=!=逻辑运算符:逻辑运算符:&|&|!位运算符:位运算符:&|&|赋值运算符:赋值运算符:=+=-=*=/=%=&=|=+=-=*=/=%=&=|=条件运算符:?:条件运算符:?:逗号运算符:逗号运算符:,指针运算符:指针运算符:&*求字节运算符:求字节运算符:sizeofsizeof函数调用运算符、函数调用运算符、强制类型转换强制类型转换运算符:()运算符:()分量运算符:分量运算符:.-.-数组下标运算符:数组下标运算符:作用范围分解运算符:作用范围分解运算符::动态内存分配符:动态内存分配
10、符:newnew、deletedelete插入提取运算符:插入提取运算符:第七页,本课件共有68页8运算符的优先级与结合性运算符的优先级与结合性运算符运算符含义含义要求操作对象数目要求操作对象数目结合性结合性()():.-.-括号括号作用范围分解作用范围分解(限定限定)运算符运算符数组下标运算符数组下标运算符成员运算符成员运算符左左-右右+-+-&*!+-+-()()sizeofsizeofnew deletenew delete自增自增 自减自减取地址取地址指针引用指针引用逻辑非逻辑非按位取反按位取反正正 负号负号强制类型转换强制类型转换求字节求字节动态分配动态分配 释放内存释放内存1 1右
11、右-左左*/%*/%乘法乘法 除法除法 求余求余2 2左左-右右+-+-加法加法 减法减法2 2第八页,本课件共有68页9运算符的优先级与结合性(续表)运算符的优先级与结合性(续表)运算符运算符含义含义要求操作对象数目要求操作对象数目结合性结合性左移左移 右移运算符右移运算符2 2左左-右右=小于小于 小于等于小于等于大于大于 大于等于大于等于=!=!=等于等于 不等于不等于&|按位与按位与按位异或按位异或按位或按位或&逻辑与逻辑与|逻辑或逻辑或?:?:条件运算符条件运算符3 3右右-左左=+=-=*=/=%=+=-=*=/=%=&=|=&=|=赋值运算符赋值运算符扩展的赋值运算符扩展的赋值运
12、算符2 2右右-左左,逗号运算符逗号运算符2 2左左-右右第九页,本课件共有68页10C+C+中的类型转换中的类型转换转换运算符:()转换运算符:()两种强制类型转换的方法两种强制类型转换的方法:(目标类型名目标类型名)表达式:表达式:float x=2.5;int y;float x=2.5;int y;y=(int)x;y=(int)x;目标类型名(表达式):目标类型名(表达式):float x=2.5;int y;float x=2.5;int y;y=int(x);y=int(x);C+C+中的显式转换中的显式转换static_caststatic_cast可以不用强制类型转换但一定会
13、发生转换的地方可以不用强制类型转换但一定会发生转换的地方(为了为了更清楚、更醒目而使用)更清楚、更醒目而使用)const_castconst_cast对对constconst和和volatilevolatile进行转换进行转换reinterpret_castreinterpret_cast转换为完全不同的意思,必须转换回原来的类型才能转换为完全不同的意思,必须转换回原来的类型才能安全的使用,最为危险安全的使用,最为危险dynamic_castdynamic_cast把基类对象把基类对象(指针指针)转换为派生类对象转换为派生类对象(指针指针)时使用时使用使用方式使用方式 转换用关键字转换用关键字
14、(待转换的表达式待转换的表达式)第十页,本课件共有68页11例:例:static_caststatic_castvoidvoid func(int)func(int)voidvoid mainmain()()intint i=0 x7fff;long l;float f;i=0 x7fff;long l;float f;l=i;f=i;l=i;f=i;/更好的方法是使用更好的方法是使用static_caststatic_castl=l=static_caststatic_cast(i);f=(i);f=static_caststatic_cast(i);(i);i=l;i=f;i=l;i=f;
15、/以上两条语句会出以上两条语句会出WarningWarning,可使用如下方式消除,可使用如下方式消除i=i=static_caststatic_cast(l);i=(l);i=static_caststatic_cast(f);(f);charchar c=c=static_caststatic_cast(i);(i);voidvoid*vp=&f;*vp=&f;floatfloat*fp=(*fp=(floatfloat*)vp;/C*)vp;/C的方法,不好的方法,不好fp=fp=static_caststatic_cast(vp);/*(vp);/更好的方法更好的方法 doubledo
16、uble d=0.0;d=0.0;intint x=d;/x=d;/自动发生隐式类型转换自动发生隐式类型转换x=(x=(intint)d;/C)d;/C的方法,不好的方法,不好x=x=static_caststatic_cast(d);/(d);/更好的方法更好的方法func(d);/func(d);/自动发生隐式类型转换自动发生隐式类型转换func(static_castfunc(static_cast(d);/(d);/更好的方法更好的方法 第十一页,本课件共有68页12例:例:const_castconst_castvoidvoid mainmain()()const intconst
17、int i=0;i=0;/int*j=&i;/int*j=&i;/错误,不允许这样赋值错误,不允许这样赋值intint*k=(int*)&i;*k=(int*)&i;/被摒弃的方法被摒弃的方法k=k=const_castconst_cast(&i);(&i);/long*l=const_cast(&i);/long*l=const_cast(&i);/错误,不允许同时进行错误,不允许同时进行const*-nonConst*const*-nonConst*/和和nonConst*-long*nonConst*-long*两项转换两项转换 第十二页,本课件共有68页13例:例:reinterpre
18、t_castreinterpret_cast#include#include using namespaceusing namespace stdstd;const intconst int sz=100;sz=100;structstruct X X intint asz;asz;voidvoid print(print(X X*x)*x)forfor(intint i=0;isz;i+)i=0;isz;i+)cout ai ;cout ai ;cout endl -endl;cout endl -endl;void void mainmain()()X X x;x;printprint(&
19、x);(&x);int*xp=int*xp=reinterpret_castreinterpret_cast(&x);*(&x);forfor(intint*i=xp;ixp+sz;i+)*i=xp;ixp+sz;i+)*i=10;*i=10;printprint(reinterpret_castreinterpret_cast(xp);(xp);printprint(&x);(&x);第十三页,本课件共有68页142.2.表达式表达式 由运算符连接操作数构成的式子由运算符连接操作数构成的式子算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式赋值表达式赋值表达式条件表达式条件表达式逗
20、号表达式逗号表达式第十四页,本课件共有68页153 3 常量与变量常量与变量一一.C+.C+中的常量中的常量 1.1.直接常量直接常量(字面常量字面常量):10):10,10.510.5,AA,stringstring .intint型型 .float .float型型 .char .char型型 .字符串常量字符串常量 .boolbool型型:true:true、falsefalse 2.2.符号常量:符号常量:C+C+中有两种符号常量中有两种符号常量#define#define定义的常量定义的常量 例:例:#define pi 3.1415926#define pi 3.1415926关键
21、字关键字constconst定义的常量定义的常量 例:例:const int sz=100;const int sz=100;#define#define定定义义的的常常量量,在在预预处处理理时时只只是是字字符符串串的的替替换换,对对编编译译器器而而言言,不不带带有有任任何何类类型型信信息息,不不便便于于查查错错;而而constconst定义的常量带有类型信息,故优于定义的常量带有类型信息,故优于#define#define定义的常量定义的常量C+C+推荐使用推荐使用constconst定义的常量定义的常量第十五页,本课件共有68页16constconst常量常量定义语法定义语法:const
22、const 类型名类型名 常量名常量名 =常量值;常量值;或或 类型名类型名 const const 常量名常量名 =常量值;常量值;例:例:const float pi=3.14;const float pi=3.14;float const pi=3.14;float const pi=3.14;const int min=50;const int min=50;int const min=50;int const min=50;const int max=2*min;const int max=2*min;int const max=2*min;int const max=2*min;c
23、onstconst定定义义的的常常量量,相相当当于于定定义义了了一一个个相相应应类类型型的的变变量量,但但其其值值不不能发生改变能发生改变 例:例:const int min=50;const int min=50;min=40;min=40;/错误,不能改变错误,不能改变minmin的值的值 所所以以,定定义义constconst常常量量的的同同时时必必须须初初始始化化,且且一一旦旦初初始始化化后后,就就不不会会(因因不不能能故故不不会会)再再发发生生变变化化。因因此此在在作作用用范范围围内内若若某某变变量量的的值值不不会会发发生生改改变变,则则定定义义该该变变量量时时应应用用constco
24、nst进进行行限限定定,以以免免无无意意中改变该变量的值中改变该变量的值constconst常量是编译时的常量常量是编译时的常量 例:例:const int sz=100;const int sz=100;int arrsz;int arrsz;第十六页,本课件共有68页17constconst与指针与指针1.1.指向常量的指针:指向常量的指针:限定指针所指的对象、变量限定指针所指的对象、变量 定义形式:定义形式:const const 类型类型*指针变量指针变量=地址表达式地址表达式;或或 类型类型 const*const*指针变量指针变量=地址表达式地址表达式;例:例:int var=35
25、;int var=35;const int max=100;const int max=100;int*p;int*p;const int*p1_const;const int*p1_const;const int*p2_const;const int*p2_const;p1_const=&var;p1_const=&var;p2_const=&max;p2_const=&max;var=40;var=40;*p1_const=100;*p1_const=100;*p2_const=200;*p2_const=200;max=200;max=200;p=&max;p=&max;p1_const
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础知识 汇总 精选 课件
限制150内