收藏 分销(赏)

C语言程序设计全套教程教程.ppt

上传人:丰**** 文档编号:10251513 上传时间:2025-04-30 格式:PPT 页数:337 大小:8.18MB
下载 相关 举报
C语言程序设计全套教程教程.ppt_第1页
第1页 / 共337页
C语言程序设计全套教程教程.ppt_第2页
第2页 / 共337页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,目录页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目录页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C语言,程序设计,V6,1,C语言概述,2,数据类型、表达式及其运算,3,顺序结构程序设计,4,选择结构程序设计,5,循环结构程序设计,目 录,6,数组和指向数组的指针,7,函数与指针,8,结构体与共用体,9,文件,10,C语言屏幕操作操作函数及应用,C语言概述,第1章,本章,要点,C语言的发展与特点,C语言的基本符号和关键字,C语言程序结构及特点,C语言程序编辑、编译与运行,1.1 C语言的发展与特点,第1章,1概述,C语言是目前世界上最为流行的计算机高级程序设计语言之一。它设计精巧,功能齐全,既适合于编写应用软件,又特别适合于编写系统软件。,C语言不仅有易学易用的优点,而且具有面向过程、结构化、通用性强、可移植性强及集成开发环境先进等特点。而且,C语言具有很强的绘图能力,数据处理能力,同样适合于二维、三维图形和动画的开发。,1.1.1 C语言的发展,1.1 C语言的发展与特点,第1章,2C语言的发展,早期的计算机,都是用机器语言和汇编语言来编写程序代码。到了第二代计算机才有了高级语言。,1960年开发的ALGOL-60,对其后的高级语言的发展,起到了很好的推进作用。但是,它是一种面向问题的语言,过于抽象,难以描述系统。因此,没有得到真正的推广。,1972年1973年间,贝尔实验室的DMRitchie,在BCPL语言的基础上设计出了C语言。,1973年KThompson和DMRitchie两人合作,把原来由两人用汇编语言编写的UNIX操作系统中90以上的代码,用C语言来重写,即UNIX 5。后来,C语言虽作了多次改进,但主要还是用在贝尔实验室内部。直到1975年,用C语言写的UNIX 6公布后,才引起业内人士的广泛关注。,1.1.1 C语言的发展,1.1 C语言的发展与特点,第1章,2C语言的发展,1978年Brian WKernighan和Dennis MRitchie(合称K&R)合著了影响深远的著作The C Programming Language一书。该书中介绍的C语言被称为标准C。,1983年,美国国际标准化协会(ANSl),在参考C语言的各种版本基础上,制定了新的标准,称为ANSI C。,1988年,K&R按照ANSI C标准重写了The C Programming Language。1990年,国际标准化组织ISO(International Standard Organization),接受了以87 ANSI C为ISOC的标准。目前流行的C编译系统,都是以它为基础的。,高级语言发展至今,面向对象的程序设计方法越来越受到人们的青睐。,1.1.1 C语言的发展,1.1 C语言的发展与特点,第1章,1.1.2 C语言的特点,(1)语言简洁、灵活。,(2)数据类型丰富,涉及面广。,(3)运算符多样,表达能力强。,(4)函数是程序的主体。,(5)C语言允许直接访问物理地址。,(6)生成的目标代码质量高。,(7)可移植性好。,1.2 C语言的基本符号与关键字,第1章,字符集是构成C语言的基本元素。用C语言编写程序时,所写的语句是由字符集中的字符构成。C语言的字符集由下列字符构成:,1.2.1 基本符号集,(1)英文字母:AZ,az。,(2)数字字符:09。,(3)特殊符号:空格!%*&_(下划线)+=-/,;.,(),1.2 C语言的基本符号与关键字,第1章,关键字是具有特定含义的、专门用来说明C语言的特定成分的一类单词、单词缩写或单词组合。C语言的关键字都是用小写字母来书写。以下列出C语言的关键字:,1.2.2 关键字,auto break case char const continue default,do double else enum extern float for,goto if int long register return short,signed sizeof static struct switch typedef unsigned,union void volatile while,1.2 C语言的基本符号与关键字,第1章,C语言中标识符(名字)是用来标识变量名、符号常量名、函数名、数组名、类型名等程序对象的有效字符序列。C语言对标识符有如下规定:,1.2.3 标识符,(1)标识符只能由英文字母(AZ,az)、数字(09)和下划线三种字符组成,且第一个字符必须为字母或下划线。,例如:,正确的标识符:abc,a1,prog_to,file_ 2,ab2c3。,不正确的标识符:2from,yes no/。,1.2 C语言的基本符号与关键字,第1章,C语言中标识符(名字)是用来标识变量名、符号常量名、函数名、数组名、类型名等程序对象的有效字符序列。C语言对标识符有如下规定:,1.2.3 标识符,(2)大小写字符代表不同的标识符。例如:标识符abc与标识符ABC是两个不同的标识符。一般对变量命名用小写,符号常量命名用大写。,(3)每个标识符由1-8个字符组成。如果标识符超过8个长度,只有前8个标识符为有效标识符。,例如:employee1和employee2,就会被认为是相同的标识符employee。,1.2 C语言的基本符号与关键字,第1章,计算机中,所有的信息都用二进制代码表示。二进制编码的方式较多,应用最为广泛的是ASCII码。我们使用的字符在计算机中就是以ASCII码方式存储的。,ASCII码是美国标准信息交换码(American Standard Code for Information Interchange,缩写为ASCII)。它被国际标准化组织,(ISO)认定为国际标准,详见附录。,1.2.4 ASCII字符集,1.3 C语言程序,第1章,(1)程序,所谓“程序”,即从事某一件事情的具体步骤。现实生活中,我们每个人其实都在无意识的情况下,编写着不同的“程序”。例如:我们去银行取钱,就会有以下的操作步骤:,1.3.1 程序与C语言程序结构,第一步,第二步,第三步,拿卡或存折去某一个银行,第四步,第五步,在银行排队等候;,排队轮到后,把卡或存折交由银行工作人员进行取钱操作,处理完后,银行工作人员将卡或存折以及现金返回给我们,将卡或存折以及现金收放好后离开银行。,1.3 C语言程序,第1章,(2)C语言程序结构,通过以下几个例题,让我们对C语言的程序结构及执行过程有个全面的了解。程序语句不要求完全能理解,只是先对C程序的全貌有一个感性认识,为以后的学习打下基础。,1.3.1 程序与C语言程序结构,【例1.1】在计算机屏幕上输出信息。,/*程序名称:simple.c*/,#include /*文件包含*/,main()/*程序从函数main 开始执行*/,printf(I am a C programmer,I like C!);,/*在屏幕上输出引号内的信息*/,/*函数main结束*/,1.3 C语言程序,第1章,1.3.1 程序与C语言程序结构,【例1.2】求两数之和。,#include /*包含文件*/,main()/*定义主函数*/,int a,b,sum;/*定义局部变量a,b,sum*/,scanf(,”,d,d,”,,&a,&b);/*输入2个整数,存入变量a和b中*,sum=a+b;/*将a,b的和送入sum*/,printf(,“,sum=%dn,”,sum);/*%d 表示数据按十进制整型数输出结果*/,程序运行:,输入10,20(回车键),结果:,Sum=30,1.3 C语言程序,第1章,(2)C语言程序结构,(1)一个C程序可以有多个函数,但只能有一个名为main的主函数。,(2)主函数或子函数的函数体,必须用一对花括号“”扩起来。,(3)每条语句的最后必须有一个分号“;”。,(4)大小写表示不同的含义,程序语句一般用小写字母书写,大写一般用作符号常量。,(5)注释语句“/*/”是非执行语句,可以放在程序的任意位置。,(6)C语言中使用的所有变量都必须先定义为某种数据类型,然后才能使用。,(7)#include命令是编译预处理命令。其作用是将由双引号或尖括号括起来的文件中的内容,读入到该语句位置处。,1.3.2 C语言程序结构的特点,1.4 C语言程序开发工具介绍,第1章,1.Turbo C 集成编程环境,开发一个C语言程序的基本步骤,可用图1-1描述。C源程序经过编辑、编译、链接生成EXE文件,然后在计算机上执行。无论哪个阶段有错误,都要回到编辑状态修改源程序。修改后再编译、链接、运行。,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,(1)Turbo C 的界面操作,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,(2)源程序编辑,按【ALT十E】进入编辑状态,首行提示正在进行编辑操作的信息:,Line Col Insert Indent Tab Fill Unindent 显示当前文件的盘符和文件名,1.4.1 Turbo C2.0集成环境与程序的上机操作,Home/End 光标移到行首/尾,Crtl十N 插入一行,Crtl十Y 删除当前行,Ctrl+K+B 定义块首,Ctrl+K+K 定义块尾,Ctrl+K+V 移动块到光标处,Ctrl+K+C 复制块到光标处,Ctrl+K+Y 删除块,Ctrl+K+H 取消块标记,表1-1 块操作,1.4 C语言程序开发工具介绍,第1章,2.上机操作与查错,(1)启动TC,如果TurboC 20系统安装在C:TC子目录下,在C盘找到TCEXE文件双击,即可进入环境。默认情况下,编辑的源程序文件、编译生成的目标文件、连接生成的可执行文件,都保存在TurboC 20系统目录下。为了系统的维护与安全,建议在上机时创建自己的工作目录,每次上机时都进入自己的工作目录中操作。,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,2.上机操作与查错,(2)编辑源程序文件,进入TC集成开发环境后,系统默认新建的文件名为“NONAMEC”。按【Ese】键后,在编辑窗口中出现闪烁的编辑光标,就可以输入源程序的代码。启动TC后,就会自动打开一个已存在的源程序文件;或按【ALT+F】,选择“New”后按回车,就可以新建一个源程序文件。,(3)保存源程序文件,按【ALT+F】后,选择“write to”,出现“命名”输入框,将文件保存在自己的工作目录中,输入保存文件的盘符、路径及文件名exp1,按回车。此时,状态栏右端的文件名已从NONAMEC变成了exp1.c。,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,2.上机操作与查错,(4)编译源程序并生成可执行文件,按Compile后选择“Build all”系统开始编译源程序,逐行检查语法错误,并在编译消息窗口报告编译情况,编译成功,则出现提示:,Success Press any key,按任意键关闭编译消息窗口。,编译中出现错误,则在消息窗口出现,“Error:Press anykey”提示,按任意键关闭编译消息,窗口后,在信息(Message)窗口显示错误信息。,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,2.上机操作与查错,(5)查错,当某行有语法错误时,系统会将该行白亮显示,并用一个竖的线条指出错误所在。这时,可按【F6】键切换到编辑状态,根据语法规则和错误提示进行修改。图1-6 Run菜单,(6)运行程序,在TC集成开发环境中运行程序的方法是:直接按【CTRL十F9】,(图1-6 run菜单),系统开始运行文件。如果源程序尚未编译连接,,此操作会自动编译源程序,连接目标程序生成可执行文件,并自动,运行该可执行文件。,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,2.上机操作与查错,(7)查看结果,按【ALT+F5】,切换到用户屏幕查看结果,显示结果:sum=48,按任意键返回TC集成开发环境。,1.4.1 Turbo C2.0集成环境与程序的上机操作,1.4 C语言程序开发工具介绍,第1章,1.安装与启动Visual C+6.0,运行Visual Studio软件中的setup.exe程序,选择安装Visual C+6.0,然后按照安装程序的指示,完成安装过程。,安装完成后,在开始菜单的程序选单中,可以看到Microsoft Visual Studio 6.0图标。选择Microsoft Visual C+6.0即可运行。也可以在Window桌面建立一个快捷方式,双击即可进入Visual C+6.0运行环境。,1.4.2 Visual C+6.集成环境与C程序的上机操作,1.4 C语言程序开发工具介绍,第1章,2.用Visual C+6.0建立并运行C语言应用程序的步骤,创建工程项目:,1.4.2 Visual C+6.集成环境与C程序的上机操作,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,新建C源程序文件,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,.编辑源程序,在图1-12的C源程序编辑区输入如下源程序代码:,#include,main(),printf(I love C programming n);,printf(n);,printf(How are you doing?n);,printf(Hi there!n);,printf(have a nice day!n);,printf(Take care!n);,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,C源程序编辑区域,显示错误与警告,区域,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,编译、连接和运行C源程序,编译,C源程序编辑完成后,选择主菜单“组建(Build)”中的“编译(Compile)”命令,或工具条上的 图标。该操作只编译当前文件而不进行连接。系统在编译时会自动先保存源程序,然后进行编译。,编译完成后,如果在编译过程中发现错误,将会在屏幕下方的显示错误与警告窗口,显示所有的错误和警告信息。双击显示错误或警告的第一行,则光标自动跳到代码的错误行,当修改错误后,重新进行编译,直到没有错误和警告信息为止。,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,组建,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,运行,选择主菜单“组建(Build)”中的“执行”命令,或单击工具条上的 图标运行程序,将会出现一个新的用户窗口,如图所示。,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,打开已经存在的C源程序,进行编辑修改,进入Visual C+6.0环境后,选择主菜单“文件”中的“打开工作区”命令,在对话框内找到要打开的工作区文件,例如ex1_1.dsw,单击“打开”按钮,打开工作区,如图所示。,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,选择主菜单“文件”中的“打开”命令,显示图所示的打开C源文件对话框。在对话框内找到要打开的文件,例如ex1_1.c,单击“打开”按钮,即可打开已经存在的C源程序。,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,3.在Visual C+6.0中程序的调试与改错,修改语法错误,查看运算结果时要注意错误的类别,是语法错误或是算法逻辑错误。对于语法错误,可按照系统所提示的错误类型对错误进行修改。,操作步骤为:,双击显示错误或警告的第一行,则光标自动跳到错误代码处。切记,一定要先修改出现的第一个语法错误。修改了错误后,重新进行编译。一般第一个错误修改后,后面与其有关的错误自然就解决了。若还有错误,仍然是先修改第一个错误,然后再次进行编译,直到没有错误和警告信息为止。,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,编辑、运行与调试程序中常用到的快捷键:,Ctrl+O:打开文件,Ctrl+S:保存文件,Ctrl+F7:编译文件,F7:连接文件,Ctrk+F5:运行文件,F9:将光标所在行位置设置为断点,F5:调试运行到断点,F10:不进入函数内部调试,F11:进入函数内部调试,Shift+F5:中断调试,1.4 C语言程序开发工具介绍,第1章,1.4.2 Visual C+6.集成环境与C程序的上机操作,修改算法错误,编译语法通过,但运行结果不正确,就要查找、分析算法,重新进行程序设计。当程序修改后,还要重新进行编译、连接,生成.exe文件后再次运行,直到运行结果正确。所以,C语言编程不仅要严格掌握语法规则,还要认真进行算法分析和设计。,数据类型、表达式及其运算,第2章,本章,要点,数据类型及定义方法,不同类型的运算符及表达式,指针变量的定义和基本运算,2.1 C语言的数据类型,第2章,任何程序都涉及待处理的数据,数据可以是常量和变量。常量和变量可分为基本类型、构造类型、指针类型和空类型。在C语言中,经常用到的各种类型数据,如图所示。,2.1.1 C语言的数据类型分类,2.1 C语言的数据类型,第2章,不同的数据类型在内存中占用不同的存储空间,它们的取值范围也不同。表2-1是C语言中常用的基本数据类型所对应的字长(存储空间)和取值范围。,2.1.2 C语言的数据类型的取值范围,类型标 识符,名 字,长度(字节),取值范围,char,字符型,1,ASCII,字符代码,unsigned char,无符号字符型,1,0,255,short int,短整型,2,-3276832767,int,整型,4,-21474836482147483647,unsigned int,无符号整型,4,04294967295,long int,长整型,4,-21474836482147483647,float,单精度型,4,double,双精度型,8,2.1 C语言的数据类型,第2章,以上不同类型的数据输出时需要使用Printf函数语句,Printf函数是一个标准的格式输出函数。一般格式为:,Printf(,“,控制格式,”,,输出参数1,输出参数2,输出参数n);,作用是在屏幕上输出引号内的信息或按控制格式所规定的格式输出数据。,为将要显示的数据指定需要输出的格式,需要用到以下不同的转换字符。具体含义如下:,2.1.3 初识printf函数输出语句,%d 表示数据按十进制整型数输出;,%f 表示数据按十进制带小数点的形式输出;,%o 表示数据按十进制八进制整型数输出;,%x 表示数据按十进制十六进制整型数输出;,%c 表示数据按字符型数输出;,%u 表示数据按十进制无符号整型数输出,2.2 常量,第2章,常量可分为不同的类型。常用的有:,常量,C语言中的数据有常量和变量之分。常量又称常数,是指在程序运行中,其值不能被改变的量,。,整型常量,实型常量,字符常量,字符串常量,符号常量,2.2 常量,第2章,整型常量是由一个或多个数字组成,可以有正、负号,但不能有小数点。整型常量有三种表示方法:,2.2.1 整型常量,(1)十进制整数:取值范围:09。,如1236,-234,0。,(2)八进制整数:以0开头的数是八进制数,取值范围:07。,如:011表示八进制数的(11)8。,(3)十六进制整数:以0 x开头的数是十六进制数,取值范围:09,AF或af。,如:0 x1F表示十六进制数的(1F)16,(十进制数为31)。,2.2 常量,第2章,2.2.1 整型常量,【例2.1】三种进制表示方法的转换。,main(),int x=1246,y=01246,z=0 x1246;,printf(%d,%d,%dn,x,y,z);/*%d:以十进制格式符输出*/,printf(%o,%o,%on,x,y,z);/*%o:以八进制格式符输出*/,printf(%x,%x,%xn,x,y,z);/*%x:以十六进制格式符输出*/,2.2 常量,第2章,在C语言中,把带小数的数值称为实数或浮点数。C语言实型常量只使用十进制数。有以下两种表示形式:,2.2.2 实型常量,1十进制数形式:由正负号、整数部分、小数点、小数部分组成。,如:3.14159,-7.21,128.96等都是十进制形式。,2指数形式:由正负号、整数部分、小数点、小数部分和字母E或e后面带正负号的整数组成。,如:十进制数180000=(1.8)用指数法可以表示为1.8e5,其中:1.8称为尾数,5称为指数。,2.2 常量,第2章,字符型常量是由一对单引号括起来的单个字符,在内存中占1个字节。,例如:A,b,2,%,;等都是有效的字符型常量。,一个字符型常量的值是该字符集中对应的ASCII编码值(参见附录)。,例如,字符常量09对应的ASCII编码值是4857。显然0与数字0是不同的,这是初学者容易混淆的一点,具体可以参看附录。,C语言中还允许用一种特殊形式的字符常量,即以反斜杠字符开头的字符序列。前面用的printf()函数中的n,代表一个“回车换行”符。这类字符称为“转义字符”,意思是将反斜杠“”后面的字符转换成另外的意义。,2.2.3 字符型常量,2.2 常量,第2章,表2-2 转换码序列表,2.2.3 字符型常量,转义符,ASC,II码,字符,含义,0,0,NULL,表示字符串结束,n,10,NL(LF),换行,将当前光标移到下一行的开头,t,9,HT,水平制表,v,11,VT,垂直制表,b,8,BS,左退一格,r,13,CR,回车,将当前光标移到本行的开头,f,12,FF,换页,39,单引号,”,34,双引号,92,反斜线,ddd,1,至,3,位八进制数所代表的字符,xhh,1,至,2,位十六进制数所代表的字符,2.2 常量,第2章,字符串常量是由一对双引号括起来的字符序列,若字符序列串长为N,则在内存占用N+1个内存单元,字符串常量在内存中存储时,系统自动加上串尾标记“0”。,例如:program,A,book都是字符串常量,双引号起定界符的作用。,因为C语言中规定字符串常量以字符0作为结束标志,系统将根据该字符判断字符串是否结束。对于字符串CHINA,它在内存中实际存放的形式如图所示。其长度是6个字节,而不是5个字节。字符0所对应的ASCII值为0,即“空”字符。,2.2.4 字符串常量,C,H,I,N,A,0,2.2 常量,第2章,用一个特定的符号来代替一个常量或代替一个较为复杂的字符串,这个符号称为符号常量。它通常由预处理命令#define来定义。符号常量一般用大写字母表示,以便与其它标识符相区别。,符号常量的一般定义形式:,#define 符号常量 常量(或“字符串”),预处理#define又称为宏定义命令,一个#define命令只能定义一个符号常量。因为它不是语句,所以结尾不用加分号。,2.2.5 符号常量,2.2 常量,第2章,2.2.5 符号常量,使用符号常量的优点如下:,(1)增强可读性。在程序中定义一些具有一定意义的符号常量,能起到“见名知义”的作用。,(2)简化输入程序。使用符号常量代替一个字符串,可以减轻程序中重复书写某些字符串的工作量。,(3)增强程序的通用性和可维护性。如果一个程序中有多处使用同一个常量,这时,可把该常量定义为一个符号常量。若需要修改该常量时,则只需要在定义处修改即可。可以作到一改全改,避免出现修改不完全或遗漏等错误。,2.变量,第2章,变量是指在程序运行过程中其值可以被改变的某个标识符。C语言中的变量可以分为以下几种类型,如图所示。,2.3.1.变量的概念,2.变量,第2章,在C语言中,无论使用哪一种类型变量,都要“先定义”,后“使用”。所谓定义,是给程序中用到的变量定义一个类型,即取值范围。初始化,就是在定义变量的同时,给变量赋初值。,2.3.2 变量的定义与初始化,变量定义格式为:,数据类型 变量名表;,例:,int a;/*定义变量a为int,系统给a分配4个字节的内存空间*/,a=10;/*给变量a赋值10,即把10送入a所分配的内存中 */,或:int a=10;/*定义变量a的同时,给a赋值10,又称给变量初始化*/,我们可以用以上两种方法给变量赋初值。,2.变量,第2章,1.整型变量,整型变量用来存放整型数据(即不带小数点的数)。有以下几种类型,其定义的关键字如下:,2.3.2 变量的定义与初始化,(1)基本型:用int表示(4个字节),(2)短整型:用short int或short表示(2字节),(3)长整型:用long int或long表示(4字节),(4)无符号整型:,无符号整型:用unsigned int或unsigned表示(4字节),无符号短整型:用unsigned short int或unsigned short表示(2字节),无符号长整型:用unsigned long int或unsigned long表示(4字节),2.变量,第2章,无符号整型变量在存储单元中的全部二进制位都用来存放数据本身。而没有符号位,即不能存放负数。,下面以短整型变量在内存中占两个字节(16bit)为例,来说明无符号与有符号数据类型的区别。,短整型变量数值的表示范围是-3276832767,若不考虑符号位,无符号短整型数值的表示范围为065535,如图2-4 所示,可以看出它们的取值范围是不同的。,2.3.2 变量的定义与初始化,2.变量,第2章,2.3.2 变量的定义与初始化,【例2.2】简单的算术运算。,#include ,main(),int a,b,s1,s2;/*定义a,b,s1,s2为整型变量*/,unsigned x=20;/*定义x为无符号整型变量并赋初值20*/,a=10;b=-30;/*给变量a,b分别赋值*/,s1=a+x;/*进行计算,结果赋给变量s1*/,s2=b+x;/*进行计算,结果赋给变量s2*/,printf(a+x=%d,b+x=%dn,s1,s2);/*a+x=,b+x=是字符串原样输出,%d是按整型格式输出变量s1,s2的值,n是输出数据后换行*/,运行结果为:,a+x=30,b+x=-10,2.变量,第2章,实型变量,实型变量又称浮点型变量,按能够表示数的小数点后的精度,C语言实型变量分为三种:,(1)单精度型:,用float表示,在内存占用4个字节,有效数字67位。,(2)双精度型:,用double表示,在内存占用8个字节,有效数字1516位。,(3)长双精度型:,用long double表示,在内存占用16个字节,有效数字1819位。,2.3.2 变量的定义与初始化,2.变量,第2章,其定义方式如下:,float a,b;/*定义单精度变量a,b*/,double c,d;/*定义双精度变量c,d*/,单精度浮点型变量和双精度浮点型变量之间的差异仅仅体现在所能表示的数的精度上。一般单精度型数据占4个字节,有效位为7位,数值范围约为10-381038,而双精度型数据占8个字节,有效位为1516位,数值范围约为10-30810308。,2.3.2 变量的定义与初始化,2.变量,第2章,2.3.2 变量的定义与初始化,【例2.3】不同类型数据的输出比较。,#include,main(),float a;,double b;,a=123456.111;,b=123456.111;,printf(a=%f,b=%lfn,a,b);,运行结果:,a=123456.109375,b=123456.111000,2.变量,第2章,字符型变量,一个字符型变量用来存放一个字符,在内存中占一个字节。实际上,将一个字符常数赋值给一个字符变量,并不是把该字符本身放到内存单元中去,而是将该字符对应的ASCII值(整数)存放到内存单元中。因此,字符型数据也可以像整型数据那样使用,用来表示一些特定范围内的整数。,字符型数据分为两类:,2.3.2 变量的定义与初始化,一般字符类型(char),无符号字符类型(unsigned char),2.变量,第2章,其定义方式如下:,float a,b;/*定义单精度变量a,b*/,double c,d;/*定义双精度变量c,d*/,单精度浮点型变量和双精度浮点型变量之间的差异仅仅体现在所能表示的数的精度上。一般单精度型数据占4个字节,有效位为7位,数值范围约为10-381038,而双精度型数据占8个字节,有效位为1516位,数值范围约为10-30810308。,2.3.2 变量的定义与初始化,2.变量,第2章,其定义方式如下:,float a,b;/*定义单精度变量a,b*/,double c,d;/*定义双精度变量c,d*/,单精度浮点型变量和双精度浮点型变量之间的差异仅仅体现在所能表示的数的精度上。一般单精度型数据占4个字节,有效位为7位,数值范围约为10-381038,而双精度型数据占8个字节,有效位为1516位,数值范围约为10-30810308。,2.3.2 变量的定义与初始化,2.变量,第2章,2.3.2 变量的定义与初始化,【例2.4】字符型数据与整型数据的互相赋值运算。,#include,main(),char c1,c2;/*定义c1,c2为字符型变量*/,c1=65;c2=66;/*将数值65、66分别赋给c1,c2*/,printf(%c,%cn,c1,c2);/*按字符格式输出c1,c2对应的字符*/,printf(%d,%dn,c1,c2);/*按十进制输出c1,c2对应的ASCII码值*/,运行结果为,A,B,65,66,2.变量,第2章,.指针变量,指针又称地址,指针变量即存放地址的变量。变量的三要素是变量名、变量值与变量地址。而变量值与变量地址是两个不同的概念,变量在内存所占的存储单元中存放的数据称为变量的值;变量在内存所占的存储单元的首地址称为变量的地址。变量的地址只可以存储在指针变量中,通过指针变量来引用地址中的数据。,指针变量与其它变量一样,也要先定义后使用。,指针变量定义的一般形式:,2.3.2 变量的定义与初始化,数据类型 *指针变量名;,2.变量,第2章,2.3.2 变量的定义与初始化,【例2.6】输出变量与指针变量的值。,#include ,main(),int a=10;/*a的值为10,变量a的内存地址编号为1245052*/,int*p;/*定义存放整型变量地址的指针变量p*/,p=/*将整型变量a的地址送给指针变量p */,printf(“a=%d,p=%u”,a,p);/*分别打印出变量a和指针变量p中的值*/,运行结果:,a=10,p=1245052,2.4,运算符及表达式,第2章,1C语言的运算符,常用的C语言中的运算符有以下几类:,2.4.1.C语言运算符,(1)算术运算符:(+-*/%+-)(2)关系运算符:(=!=),(3)逻辑运算符:(&|!)(4)赋值运算符:(=+=-=*=/=%=),(5)指针运算符:(*&)(6)条件运算符:(?:),(7)逗号运算符:(,)(8)位运算符:(&|),(9)求字节运算符:(sizeof)(10)特殊运算符:()-等),(11)分量运算符:()(12)下标运算符:(),(13)其他:(如函数调用运算符),2.4,运算符及表达式,第2章,2运算符的优先级与结合性,由于C语言的运算符多,使用时变化非常丰富,所以,C语言规定了运算符的优先级和结合性。当一个表达式中有多个运算符参加运算时,将按不同的先后次序进行运算。这种计算的先后次序称为运算符的优先级。,结合性是指,当一个操作数两侧的运算符具有相同优先级时,该操作数是先与左边还是先与右边的运算符结合进行运算。从左至右的结合方向,称为左结合性。反之,称为右结合性。,结合性是C语言的独有概念。除单目运算符、赋值运算符和条件运算符是右结合性外,其他运算符都是左结合性。,2.4.1.C语言运算符,2.4,运算符及表达式,第2章,表2-3 运算符的优先级和结合性,2.4.1.C语言运算符,优先级,运,算,符,含,义,要求运算对象个数,结合方向,(高),1,(),一,。,圆括号,下标运算符,指向结构体成员运算符,结构体成员运算符,自左至右,2,!,+,_ _,_,(,类型,),*,&,sizeof,逻辑非
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服