《《C编程基础》PPT课件 (2).ppt》由会员分享,可在线阅读,更多相关《《C编程基础》PPT课件 (2).ppt(116页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机程序设计基础计算机程序设计基础编程基础编程基础2q计算机编程语言及其发展计算机编程语言及其发展qC+语言简介语言简介q C+程序的基本框架程序的基本框架qC+的基本数据类型的基本数据类型q常量、变量的定义及使用方法常量、变量的定义及使用方法qC+的基本运算符及表达式的基本运算符及表达式q数据类型的转换数据类型的转换主要内容主要内容3要利用计算机完成某项任务,必须使要利用计算机完成某项任务,必须使用计算机能够理解的语言,称之为用计算机能够理解的语言,称之为计算机计算机语言语言1.计算机编程语言及其发展计算机编程语言及其发展4最初的计算机编程语言是最初的计算机编程语言是最初的计算机编程语言是
2、最初的计算机编程语言是机器语言,机器语言,机器语言,机器语言,即即即即由计由计由计由计算机硬件系统可以识别的二进制指令组成的语言算机硬件系统可以识别的二进制指令组成的语言算机硬件系统可以识别的二进制指令组成的语言算机硬件系统可以识别的二进制指令组成的语言,也称为也称为也称为也称为第一代语言第一代语言第一代语言第一代语言。用机器语言编写的程序代码中用机器语言编写的程序代码中用机器语言编写的程序代码中用机器语言编写的程序代码中只包含由只包含由只包含由只包含由0 0和和和和1 1组成的机器指令。组成的机器指令。组成的机器指令。组成的机器指令。机器语言机器语言5示例示例0100010000110110
3、00000011011100010011011000000011011100010010110001100000010110001100000111001110111001111001111001001110000011110010011100000111000110000011100001110010001000110100010001106汇编语言汇编语言为了提高编程效率,人们引入了助记为了提高编程效率,人们引入了助记符,将机器指令映射为一些可以被人读懂符,将机器指令映射为一些可以被人读懂的助记符,如的助记符,如ADD、SUB等,就出现了等,就出现了所谓的所谓的汇编语言汇编语言,也称为,也
4、称为第二代语言第二代语言。汇编语言在运行之前,需要专门的翻汇编语言在运行之前,需要专门的翻译程序(称为译程序(称为assembler汇编程序)将汇编程序)将其翻译为机器语言其翻译为机器语言。7示例示例mainprocpaymainprocpaymovmovax,dsegax,dsegmovdx,0b00hmovdx,0b00haddaddax,dxax,dxmoval,blmoval,blmulmulbl,axbl,axmovbl,o4hmovbl,o4h8高级语言高级语言为了进一步提高编程效率,改进程序的可读性、可维护性,为了进一步提高编程效率,改进程序的可读性、可维护性,为了进一步提高编程
5、效率,改进程序的可读性、可维护性,为了进一步提高编程效率,改进程序的可读性、可维护性,又出现了许多又出现了许多又出现了许多又出现了许多高级语言高级语言高级语言高级语言,也称为,也称为,也称为,也称为第三代语言第三代语言第三代语言第三代语言,例如:,例如:,例如:,例如:FortranFortran、BasicBasic、PascalPascal、JavaJava、C C和和和和C+C+等。等。等。等。高级语言比低级语言更加抽象、简洁:高级语言比低级语言更加抽象、简洁:高级语言比低级语言更加抽象、简洁:高级语言比低级语言更加抽象、简洁:l l一条高级语言的指令相当于几条机器语言的指令一条高级语言
6、的指令相当于几条机器语言的指令一条高级语言的指令相当于几条机器语言的指令一条高级语言的指令相当于几条机器语言的指令。l l用高级语言编写的程序同英语非常接近,易于学习。用高级语言编写的程序同英语非常接近,易于学习。用高级语言编写的程序同英语非常接近,易于学习。用高级语言编写的程序同英语非常接近,易于学习。l l用高级语言编写程序并不需要某种计算机的专门知识。用高级语言编写程序并不需要某种计算机的专门知识。用高级语言编写程序并不需要某种计算机的专门知识。用高级语言编写程序并不需要某种计算机的专门知识。同汇编语言类似,高级语言也需要专门的同汇编语言类似,高级语言也需要专门的同汇编语言类似,高级语言
7、也需要专门的同汇编语言类似,高级语言也需要专门的翻译程序(称为翻译程序(称为翻译程序(称为翻译程序(称为compilercompiler编译器或编译器或编译器或编译器或interpreterinterpreter解释器)解释器)解释器)解释器),将它翻译成机器语言,将它翻译成机器语言,将它翻译成机器语言,将它翻译成机器语言后,才能运行。后,才能运行。后,才能运行。后,才能运行。9示例示例#includeusingnamespacestd;voidmain()doublea,b,c;coutab;c=a+b;coutabendl;102.C+语言简介语言简介在在1983年,贝尔实验室的年,贝尔实
8、验室的BjarneStroustrup在在C语言的基础上,创建了语言的基础上,创建了C+语言,语言,C+语言的语言的ISO标准已在标准已在1997年年11月月被一致通过,被一致通过,1998年年8月被正式批准。月被正式批准。C+是一门混合型的语言,既支持传统是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序的结构化程序设计,又支持面向对象的程序设计。设计。11一个简单的一个简单的C+程序程序1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一
9、个整数:请输入一个整数:”i;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.3.C+程序结构程序结构12程序解释程序解释 第第1 1行是行是C+C+语言的语言的注释注释,它是用来,它是用来帮帮助阅读和理解程序的信息助阅读和理解程序的信息。其中,。其中,“/”是是C+C+语言的一种注释符号,自语言的一种注释符号,自“/”开始,一直到本行结束,所有内开始,一直到本行结束,所有内容都会被当作注释对待。容都会被当作注释对待。C+C+注释也可注释也可以写成下面的形式:以写成下面的形式:/*/*注释内容注释内容*/即夹在即夹在“/*/*”与与“*/”号间的部
10、分是要号间的部分是要注释的内容。注释的内容。进行程序设计时,这两种注释形式进行程序设计时,这两种注释形式都会经常用到。其区别在于:前者都会经常用到。其区别在于:前者只能只能注释一行内容注释一行内容,而后者,而后者可以注释多行内可以注释多行内容容。注释可以用在程序的任何地方,编。注释可以用在程序的任何地方,编译器在编译时将这些注释信息忽略。译器在编译时将这些注释信息忽略。1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一个整数:”i;9.cou
11、t您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.13第第2行使用行使用预处理命令预处理命令#include将头文件将头文件iostream.h包含到程序中来,包含到程序中来,iostream.h是标准的是标准的C+头头文件,它包含了输入和输出文件,它包含了输入和输出的定义。其扩展名为的定义。其扩展名为.h,在在#include命令中若省略头文命令中若省略头文件的扩展名,就必须在所有件的扩展名,就必须在所有#include命令后添加命令后添加using命令命令,即在程序第,即在程序第3行加入:行加入:usingnamespacestd;程序解释程序解释1./s
12、imple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一个整数:”i;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.14程序解释程序解释usingnamespacestd;qusing命令,告诉命令,告诉C+编译器标准编译器标准C+关键关键字的定义,如:字的定义,如:cin、cout、endl等,位等,位于名为于名为std的命名空间,的命名空间,命名空间是一段特命名空间是一段特殊的计算机内存区域。殊的计算机内
13、存区域。std是是standard的缩的缩写。写。q程序的预编译命令可以写成:程序的预编译命令可以写成:#include或或#includeusingnamespacestd;注意注意#include预编译命令后不加分号。预编译命令后不加分号。15编译预处理编译预处理q预处理命令均以预处理命令均以“#”号号开头开头q一行只能写一条预处理命令一行只能写一条预处理命令(过长的预处理命令使用续(过长的预处理命令使用续行标志行标志“”后续写在下一行后续写在下一行上)上)q结束时不使用语句结束符结束时不使用语句结束符“;”qC+程序一般程序一般至少包含一条至少包含一条预编译命令,大多数包含多预编译命令,
14、大多数包含多条。条。1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一个整数:”i;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.16编译预处理命令编译预处理命令#include包含指令包含指令文件包含命令格式文件包含命令格式有:有:q#include(标准)(标准)按标准方式搜索,文件位于按标准方式搜索,文件位于C+系统目录的系统目录的include子目录下子目录下。q#include文件名文
15、件名首先在当前目录中搜索,若没有,再按标准方式搜索。首先在当前目录中搜索,若没有,再按标准方式搜索。17程序解释程序解释q第第3行定义了一个称为行定义了一个称为main的的主主函数函数。任何一个任何一个C+程序都程序都有且只有一有且只有一个主函数个主函数main(),它可以带参数。,它可以带参数。main函数的返回值有两种情况:函数的返回值有两种情况:无返回值(返回类型为无返回值(返回类型为void)及)及返回值为整型。返回值为整型。函数体用花括号函数体用花括号括起来括起来。描述一个函数所执行算法的过程描述一个函数所执行算法的过程称为函数定义。称为函数定义。q第第4行是一个左花括号行是一个左花
16、括号,是,是main函数体开始的标记。函数体开始的标记。1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一个整数:”i;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.18程序解释程序解释q第第5行是一个语句。行是一个语句。一个一个语句可能是定义或声明语句可能是定义或声明一个变量一个变量,也可能是,也可能是得到一得到一个数值的计算步骤个数值的计算步骤。一个语句用分号一个语句用分号;结尾结尾inta
17、;该语句定义了一个整型该语句定义了一个整型变量变量i。一个变量能够保存一种特定一个变量能够保存一种特定类型的数据,类型的数据,整型变量能够整型变量能够保存一个整型数据。保存一个整型数据。q第第6行也是一个语句。行也是一个语句。这个语句将字符串这个语句将字符串“HelloC+!”发送到发送到cout输出流输出流。一个一个字符串是用双引号包围字符串是用双引号包围的字符系列。的字符系列。1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一个整数:”i
18、;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.19程序解释程序解释q第第7行也是一个语句。行也是一个语句。这个语句将字符串这个语句将字符串“请请输入一个整数:输入一个整数:”发送发送到到cout输出流输出流。endl起换行的作用。起换行的作用。q第第8行也是一个语句。行也是一个语句。这个语句将这个语句将cin输入流输入流抽抽取到变量取到变量i。1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一
19、个整数:”i;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.20程序解释程序解释q第第9、10、11行分别是在屏幕上行分别是在屏幕上打印打印“您输入的整数是:您输入的整数是:”、变量、变量i和换行。这三行实际上可以综合和换行。这三行实际上可以综合为一个语句:为一个语句:cout“您输入的整数是您输入的整数是:”iendl;它的效果与使用三个语句是一样它的效果与使用三个语句是一样的。的。q第第12行的花括号是行的花括号是main函数体结函数体结束的标记。束的标记。1./simple.cpp是一个简单的是一个简单的C+程序程序2.#include3.
20、voidmain(void)4.5.inti;6.cout“HelloC+!”;7.cout“请输入一个整数:请输入一个整数:”i;9.cout您输入的整数是:您输入的整数是:;10.couti;11.coutendl;12.21C+语言程序的编写和运行语言程序的编写和运行要想得到可以执行的要想得到可以执行的C+程序,必须对程序,必须对C+源程源程序进行序进行编译和连接编译和连接。对于。对于C+语言,这一过程的一语言,这一过程的一般描述如下:般描述如下:q使用文本编辑工具编写使用文本编辑工具编写C+程序,其文件后缀为程序,其文件后缀为.cpp,这种形式的程序称为,这种形式的程序称为源代码源代码
21、(SourceCode)。)。q然后用编译器将源代码转换成二进制形式,文件后然后用编译器将源代码转换成二进制形式,文件后缀为缀为.obj,这种形式的程序称为,这种形式的程序称为目标代码目标代码(ObjectiveCode)。)。q最后,将若干目标代码和现有的二进制代码库经过最后,将若干目标代码和现有的二进制代码库经过连接器连接,产生连接器连接,产生可执行代码可执行代码(ExecutableCode),文件后缀为文件后缀为.exe。22#includeusingnamespacestd;voidmain()doublea,b,c;coutab;c=a+b;coutabendl;源文件源文件源文件
22、源文件.cpp.cpp编译器编译器编译器编译器010010010101100101001001010110010001000010100011000100001010001110101101101001111010110110100111目标文件目标文件目标文件目标文件.obj.obj100101101011000110010110101100010110100100101001011010010010100101101101011010110110110101101011其他目标其他目标其他目标其他目标文件文件文件文件/库库库库链接器链接器链接器链接器01001001010110010100
23、1001010110010001000010100011000100001010001110101101101001111010110110100111100101101011000110010110101100010110100100101001011010010010100101101101011010110110110101101011可执行文件可执行文件可执行文件可执行文件.exe.exe1.1.编辑程序编辑程序编辑程序编辑程序2.2.编译程序编译程序编译程序编译程序3.3.链接程序链接程序链接程序链接程序C+语言程序的编写和运行语言程序的编写和运行23VisualC+6.0开发环境简
24、介开发环境简介C+的流行使得许多软件厂商都提供了自己的的流行使得许多软件厂商都提供了自己的C+集成开发环境,称为集成开发环境,称为C+IDE。著名的有。著名的有Borland公司的公司的C+Builder,IBM公司的公司的VisualAgeForC+,Microsoft公司的公司的VisualC+等等。等等。VisualC+6是美国微软公司开发的是美国微软公司开发的C+集成开集成开发环境,它发环境,它集源程序的编写、编译、连接、调试、集源程序的编写、编译、连接、调试、运行,以及应用程序的文件管理于一体运行,以及应用程序的文件管理于一体,是当前,是当前PC机上流行的机上流行的C+程序开发环境。
25、程序开发环境。24应用举例应用举例一般情况下,开发一个一般情况下,开发一个C+应用程序按照如应用程序按照如下步骤来进行:下步骤来进行:q创建一个项目;创建一个项目;q编辑项目中的源代码;编辑项目中的源代码;q为项目指定配置(为项目指定配置(Debug或或Release););Debug通常称为调试版本,它包含调试信息,并且不作通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很程序在代码大小和运行速度
26、上都是最优的,以便用户很好地使用。好地使用。q连编项目中的文件;连编项目中的文件;q纠正连编中出现的错误;纠正连编中出现的错误;q运行可执行的文件。运行可执行的文件。25应用举例应用举例C+中开发的应用程序中开发的应用程序叫做叫做项目项目(Project),项目,项目文件名后缀为文件名后缀为dsp。每个正在开发的项目需要一个活。每个正在开发的项目需要一个活动的动的项目工作区(项目工作区(workspace),),项目项目工作区文件的工作区文件的后缀名后缀名为为dsw。创建一个项目的同时,也创建了一个。创建一个项目的同时,也创建了一个项目工作区,项目工作区,VisualC+6的集成开发环境中,通
27、过的集成开发环境中,通过“File”菜单的菜单的“New”命令创建一个新的项目。命令创建一个新的项目。工作区包含了一个或多个项目在开发过程中所包工作区包含了一个或多个项目在开发过程中所包括的全部内容,保存着关于一个或多个应用项目文件括的全部内容,保存着关于一个或多个应用项目文件的编辑、编译、调试、版本、系统界面设置等全面信的编辑、编译、调试、版本、系统界面设置等全面信息,构成一个概念上十分完整的息,构成一个概念上十分完整的开发空间开发空间。26q逻辑错误逻辑错误:产生的原因很多,比如误拼关键:产生的原因很多,比如误拼关键字或变量名数学公式的写法错误、漏写语句或字或变量名数学公式的写法错误、漏写
28、语句或语句顺序错误等时产生。程序并无违背语法规语句顺序错误等时产生。程序并无违背语法规则,但程序执行结果与原意不符。则,但程序执行结果与原意不符。q运行错误运行错误:程序既无语法错误,也无逻辑错:程序既无语法错误,也无逻辑错误,但在运行程序时出现错误甚至停止运行。误,但在运行程序时出现错误甚至停止运行。通过提示信息,改正语法错误。逻辑错误、运通过提示信息,改正语法错误。逻辑错误、运行错误较难更正,需多方面考虑,不断的积累、行错误较难更正,需多方面考虑,不断的积累、提高。提高。简单的调式技能简单的调式技能27计算机语言的基本体系结构计算机语言的基本体系结构2.计算机语言的基本体系结构计算机语言的
29、基本体系结构自然语言的基本体系结构自然语言的基本体系结构字符字符字符字符词汇词汇词汇词汇短语短语短语短语句子句子句子句子段落段落段落段落描写描写描写描写文章文章文章文章基本符号基本符号基本符号基本符号常量、变量、常量、变量、常量、变量、常量、变量、运算符等运算符等运算符等运算符等表达式表达式表达式表达式语句语句语句语句函数函数函数函数类、包类、包类、包类、包程序程序程序程序282.1C+的字符集的字符集P26ASCII码码字符集是计算机中的常用字符集。它字符集是计算机中的常用字符集。它包括英文字母及阿拉伯数字等包括英文字母及阿拉伯数字等128个字符,存储个字符,存储一个一个ASCII码码占用一
30、个字节占用一个字节单元。单元。汉字国标码汉字国标码用于汉字处理。国标码的存储用于汉字处理。国标码的存储占用占用两个字节单元两个字节单元。Unicode字符集对各类字符进行字符集对各类字符进行统一的双字节统一的双字节编码编码。它包括了世界上多种语言的基本字符,。它包括了世界上多种语言的基本字符,最最多可容纳多可容纳65536个个字符。字符。ASCII码字符集,国标码字符集,国标码字符集都是它的子集。码字符集都是它的子集。常用字符集常用字符集29C+的字符集的字符集26个个小写字母小写字母abcdefghijklmnopqrstuvwxyz26个个大写字母大写字母ABCDEFGHIJKLMNOPQ
31、RSTUVWXYZ10个个阿拉伯数字阿拉伯数字0123456789其他符号其他符号+-*/=,._:;?|!#%&()空格空格C+语言基本字符语言基本字符302.2标识符和关键字标识符和关键字P282.2.1标识符标识符标识符是一个字符序列,用来标识变量、标识符是一个字符序列,用来标识变量、函数、数据类型等。函数、数据类型等。标识符可以由大写字母、小写字母、下标识符可以由大写字母、小写字母、下划线(划线(_)和数字)和数字09组成,组成,但必须是以大写但必须是以大写字母、小写字母或下划线(字母、小写字母或下划线(_)开头。)开头。在在C+语言程序中,语言程序中,大写字母和小写字母大写字母和小写
32、字母不能混用(即区分大小写,大小写不能混用(即区分大小写,大小写敏感)。敏感)。31标识符的命名规则标识符的命名规则q所有标识符必须所有标识符必须由一个字母由一个字母(az或或AZ)或下划线或下划线(_)开头;开头;q标识符的其它部分可以用字母、下划线或数字标识符的其它部分可以用字母、下划线或数字(09)组成;组成;q大小写字母表示不同意义大小写字母表示不同意义,即代表不同的标识符,如前面即代表不同的标识符,如前面的的cout和和Cout。在定义标识符时,虽然语法上允许用下划线开头,但是在定义标识符时,虽然语法上允许用下划线开头,但是最好避免定义用下划线开头的标识符,因为编译器常定最好避免定义
33、用下划线开头的标识符,因为编译器常定义一些下划线开头的标识符。义一些下划线开头的标识符。q一个写得好的程序,一个写得好的程序,标识符应该尽量有意义。标识符应该尽量有意义。比如表示比如表示年可以用年可以用year,表示长度可以用,表示长度可以用length,表示累加和可,表示累加和可以用以用sum等,这样的标识符本身就等,这样的标识符本身就增加了程序的可读性,增加了程序的可读性,使程序更加清晰易懂。使程序更加清晰易懂。32示例示例判断下面哪些是合法的标识符:判断下面哪些是合法的标识符:MyFileSalary94amountvoid94SalarySalary94$amountf3.5Num_o
34、f_Student332.2.2关键字关键字在在C+中,有一些中,有一些预定义的标识符预定义的标识符,称之为称之为关键字关键字,也称之为,也称之为保留字保留字。关键字是一种特殊的标识符。关键字是一种特殊的标识符。具有特具有特定的含义,不能对它们再定义。定的含义,不能对它们再定义。标准标准C+中预定义了中预定义了63个关键字。个关键字。另外,另外,有些标识符虽然不是关键字,有些标识符虽然不是关键字,但但C+语言总是以固定的形式用于专门的语言总是以固定的形式用于专门的地方,也不能把它们当作一般标识符使用地方,也不能把它们当作一般标识符使用,以免造成混乱。这样的标识符有以免造成混乱。这样的标识符有v
35、oid、include、define等。等。34C+关键字关键字asmdeletefriendprotectedthisvoidautodogotopublicthrowvolatilebooldoubleifregistertruewhilebreakelseinlinereturntry.caseenumintshorttypedef.catchexplicitlongsignedtypeid.charexportmutablesizeoftypenameclassexternnamespacestaticunionconstfalsenewstructunsignedcontinuefl
36、oatoperatorswitchusingdefaultforprivatetemplatevirtual352.3基本数据类型基本数据类型P282.3.1数据数据数据是用来表示客观事物的符号,数据是用来表示客观事物的符号,是指能够由计算机处理的数字、字母、是指能够由计算机处理的数字、字母、符号、声音、图象、影视信息等,是程符号、声音、图象、影视信息等,是程序的必要组成部分和程序处理的对象。序的必要组成部分和程序处理的对象。数据有许多形式数据有许多形式,如数值数据、文字数如数值数据、文字数据、图象数据以及声音数据等据、图象数据以及声音数据等,但其中最基但其中最基本的、也是最常用的是数值数据和
37、文字数据。本的、也是最常用的是数值数据和文字数据。36 计算机在处理数据时要先将其存放在计算机在处理数据时要先将其存放在内存中,内存中,数据在内存中存放的格式称为数数据在内存中存放的格式称为数据类型。据类型。不同类型的数据占据不同长度的不同类型的数据占据不同长度的存储单元,不同类型的数据对应不同存储单元,不同类型的数据对应不同的取值范围,不同类型的数据对应不的取值范围,不同类型的数据对应不同的操作(运算)及规则。同的操作(运算)及规则。2.3.2数据类型数据类型C+的数据类型的数据类型数组类型数组类型array指针类型指针类型type*空类型空类型void枚举类型枚举类型enum结构类型结构类
38、型struct联合类型联合类型union类类型类类型class数据数据类型类型整型整型intshortlong字符型字符型char(属于属于1字节的整型字节的整型)单精度浮点型单精度浮点型float实型实型双精度浮点型双精度浮点型double长双精度浮点型长双精度浮点型longdouble布尔逻辑型布尔逻辑型bool基本数基本数据类型据类型非基本非基本数据类型数据类型38C+的数据类型有基本数据类型和非基本数的数据类型有基本数据类型和非基本数据类型之分。基本数据类型是据类型之分。基本数据类型是C+内部预先定义内部预先定义的数据类型,也称为的数据类型,也称为内置数据类型。内置数据类型。非基本数据
39、非基本数据类型包括指针、数组和结构以及类类型等。类型包括指针、数组和结构以及类类型等。C+中所有数据的使用严格遵从中所有数据的使用严格遵从“先声明,先声明,后使用后使用”的原则。要求程序设计者在使用数据的原则。要求程序设计者在使用数据之前对数据的类型进行声明,即告诉计算机需要之前对数据的类型进行声明,即告诉计算机需要存储的是一个什么类型的数据。存储的是一个什么类型的数据。数据类型是数据数据类型是数据在内存中存放的格式。如,在内存中存放的格式。如,inta;数据类型数据类型39q整型整型用来存放整数,整数占用的字节数与机型用来存放整数,整数占用的字节数与机型有关,有关,32位机上占用位机上占用4
40、个字节个字节。基本数据类型基本数据类型q字符型字符型用来保存字符,存储的是该字符的用来保存字符,存储的是该字符的ASCII码,占用码,占用一个字节一个字节。例如字符。例如字符A的的ASCII码码为为65,字符,字符a的的ASCII码为码为97。字符型数据字符型数据从本质上说也是整数,从本质上说也是整数,可以是任何一个可以是任何一个8位位二进制整数。二进制整数。40基本数据类型基本数据类型q实型实型单精度单精度(float)和双精度型和双精度型(double)都用来都用来存放实数,两者表示的实数精度不同。存放实数,两者表示的实数精度不同。float类型是类型是4字节的浮点数字节的浮点数。doub
41、le是是8字字节的浮点数节的浮点数,double类型是浮点数的缺省类型是浮点数的缺省类型类型。q逻辑型逻辑型也称布尔型,也称布尔型,其取值为其取值为true和和false。布尔布尔型在运算中可以和整型相互转化,型在运算中可以和整型相互转化,false对对应为应为0,true对应为对应为1或非或非0。41除上述基本数据类型外,还有一些除上述基本数据类型外,还有一些类型修饰符类型修饰符,它用来它用来改变基本类型的意义改变基本类型的意义。修饰符有修饰符有short(短型符短型符)、1ong(长型符长型符)、signed(有符号有符号)和和unsigned(无符号无符号)。qshort只修饰只修饰in
42、t,shortint可省略为可省略为shortqlong修饰修饰int和和double,1ongint可省略为可省略为1ong,一般表示,一般表示4个字节,修饰个字节,修饰longdouble时,一般时,一般表示表示8或或10个字节。个字节。qunsined和和signed能修饰能修饰char,short,int和和long。数据类型数据类型42示例示例-215215-1符符号号位位15个数据位个数据位2个字节个字节16个数据位个数据位2个字节个字节0216-1类型名类型名type说明说明长度长度数据范围数据范围bool布尔逻辑型布尔逻辑型1true(1)false(0)char字符型字符型l
43、-128127(0255)unsignedchar无符号字符型无符号字符型10255signedchar有符号字符型有符号字符型1-128127signedshortint有符号短整型有符号短整型2-3276832767unsignedshortint无符号短整型无符号短整型2065535signedint有符号整型有符号整型2/4-3276832767unsignedint无符号整型无符号整型2/4065535signedlongint有符号长整型有符号长整型4-21474836482147483647unsignedlongint无符号长型型无符号长型型404294967295float浮
44、点型浮点型43.4*10e-383.4*10e38double双精度型双精度型81.7*10e-3081.7*10e308longdouble长双精度型长双精度型8/10至少与至少与double类型同类型同442.4变变量量q变量,变量,在程序中是指可以改变值的量;在程序中是指可以改变值的量;q变量必须用标识符进行标识,称为变量必须用标识符进行标识,称为变量名变量名;q变量有变量有类型类型之分,如整形变量、字符变量等;之分,如整形变量、字符变量等;q类型决定了变量的类型决定了变量的取值范围取值范围和和合法运算合法运算;q任何变量都必须任何变量都必须先声明后使用先声明后使用;一是便于编;一是便于
45、编译程序为变量分配空间,二是便于编译时进行译程序为变量分配空间,二是便于编译时进行语法检查;语法检查;q变量使用的第一步,是变量使用的第一步,是给变量赋一个确定给变量赋一个确定的值的值(初始值初始值)。451.变量定义变量定义P29在在C+中,变量定义的一般格式为:中,变量定义的一般格式为:数据类型数据类型变量名变量名1=初始值初始值1,变量名变量名2=初始值初始值2,.;数据类型可以是数据类型可以是C+数据类型中的任意一种。数据类型中的任意一种。例:例:inti,j,k;/定义三个整型变量定义三个整型变量i,j,kfloatx,y,z;/定义三个单精度实型变量定义三个单精度实型变量x,y,z
46、charc1,c2;/定义两个字符型变量定义两个字符型变量c1,c2doubledx;/定义一个双精度型变量定义一个双精度型变量dx462.变量初始化变量初始化P29定定义义变变量量时时即即给给变变量量一一个个值值称称为为变变量量初始化。初始化。例如:例如:inta=3,b=4,c=5;floatx=3.0;变量初始化可避免引用到无意义的值。变量初始化可避免引用到无意义的值。如如果果在在定定义义变变量量时时没没有有对对变变量量进进行行未未初初始始化化,则则变变量量使使用用的的第第一一步步就就是是给给变变量赋一个确定的值。量赋一个确定的值。47变量定义格式小结变量定义格式小结语语法法示示例例初初
47、值值1.数据类型数据类型变量名初值变量名初值;2.数据类型数据类型变量名变量名(初值初值);3.数据类型数据类型变量名变量名1,变量变量名名2,变量名变量名n;变量名变量名1初值初值;变量名变量名2初值初值;.变量名变量名n初值初值;intage=0;0floatrate=0.0;floatrate(0.0);doublecost=0.0;0.0chargrade=;一个空格一个空格inta,b,c;a=1;b=3;c=4;48qC+中,如果定义变量时没有进行初始化,中,如果定义变量时没有进行初始化,则系统分别初始化则系统分别初始化int、float、char和和string变变量为量为0,0
48、.0,(空格),(空格),“”(空串)。(空串)。q变量必须具有有效值后才可参与运算。变量必须具有有效值后才可参与运算。如如inta,b;a=b+1;/b无有效值,出错。无有效值,出错。关于变量的几点说明关于变量的几点说明49常量是指在程序执行中不变的量,它分常量是指在程序执行中不变的量,它分为为字面常量字面常量和和符号常量符号常量(又称标识符常量)(又称标识符常量)两种表示方法。如两种表示方法。如25,-3.26,a,“constant”等都是等都是字面常量,即字面本身字面常量,即字面本身就是它的值。就是它的值。符号常量是一个标识符,对应着一个存符号常量是一个标识符,对应着一个存储空间,该空
49、间中保存的数据就是该符号常储空间,该空间中保存的数据就是该符号常量的值,这个量的值,这个数据是在定义符号常量时赋予数据是在定义符号常量时赋予的,以后不能改变。的,以后不能改变。2.5常量常量P25502.5.1符号常量符号常量C+定义符号常量的一般形式为:定义符号常量的一般形式为:const类型类型名字名字=值值;其中,其中,“类型类型”是指常量的数据类型,如是指常量的数据类型,如short,long、double等,等,名字名字是指常量的名字,而是指常量的名字,而值值是指赋是指赋给常量的、合适的数据类型的数值。给常量的、合适的数据类型的数值。constdoublePI=3.1415927;/
50、圆周率圆周率constintnumber=49;constcharTAB=t;constcharQUERY=?;constdoubleSOMENUM=1.235E75;51符号常量符号常量q符号常量符号常量必须先声明后使用必须先声明后使用;q符号常量符号常量必须在声明时进行初始化必须在声明时进行初始化;q符号常量初始化之后,符号常量初始化之后,不允许再被赋值不允许再被赋值;q符号常量对应着一个存储空间,可以按地符号常量对应着一个存储空间,可以按地址访问,编译时系统对符号常量进行类型址访问,编译时系统对符号常量进行类型检查。检查。qC+建议使用符号常量,而不要使用字面建议使用符号常量,而不要使用