版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言期末考试必备知识点C语言期末考试必备知识点C语言期末考试必备知识点三部分一、操作对象:数据二、操作工具:语句三、完成任务:编程序。将若干个操作按完成任务的思路进行有序有效组合。书籍能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进C语言期末考试必备知识点C语言期末考试必备知识点C语言期末考1三部分一、操作对象:数据二、操作工具:语句三、完成任务:编程序。将若干个操作按完成任务的思路进行有序有效组合。三部分一、操作对象:数据2数据数据:1、各种字母、数字符号的组合、语音、
图形、图像等统称为数据。2、数据的本质是该数据的值,这是数据有意义的内容。3、值的表现形式一串二进制数字。这个值是按数据的表现形式的特点与组成部分存放4、这个值一定有个空间存放。以字节的倍数位空间的大小。5、这个空间一定有地址。数据数据:3数据类型数据使用:就是对数据存储空间的内容(数据的值)引用(读操作)和修改(写操作)数据类型(根据使用方式分):1、常数:
在使用过程中只能用其值不能改变其值2、变数:
在使用过程中只能用其值也能改变其值数据类型数据使用:就是对数据存储空间的内容(数据的值)引用(4数据的特性常数变数值有有引用(读操作)可以可以修改(写操作)不行可以存放空间有有空间大小根据值的大小和形式系统自动分配空间需人工指定空间大小地址有有能够知道其地址不能能够(用&运算符)数据的特性常数变数值有有引用(读操作)可以可以修改(写操作)5常数常数的表现形式:1、不用符号表示(称常数):1232、用符号表示(称常量):#defineM123常量M的说明:1、定义方式:#defineM1232、定义位置:通常写在源程序的最前面,仅在#include之后常数常数的表现形式:6常数与常量的使用区别常数常量inta[10],i;for(i=0;i<10;i++){a[i]=i;}#defineM10inta[M],i;for(i=0;i<M;i++){a[i]=i;}inta[20],i;for(i=0;i<20;i++){a[i]=i;}#defineM20inta[M],i;for(i=0;i<M;i++){a[i]=i;}修改了两个地方修改了一个地方常数与常量的使用区别常数常量inta[10],i;#de7变数变数的实质就是能够操作(引用(读)和修改(写))变数存放空间中数值。也就是说只要知道这个空间在哪里(地址)和空间大小我们就能轻易操作该值。空间的属性:1、大小2、地址变数变数的实质就是能够操作(引用(读)和修改(写))变数存放8变数的空间大小变数的数据类型决定变数的空间大小和数据各个组成部分在该空间中如何存放。常用的数据类型与空间的关系:整型实型字符型类型名字节数类型名字节数类型名字节数char1float4char1shortint2double8int4unsignedint4long8变数的空间大小变数的数据类型决定变数的空间大小和数据各个组成9变数空间的申请变数空间的申请就是向系统要空间。申请空间的方法有静态和动态两种。1、静态申请空间1)、申请空间。是在编写程序时就能够明确空间大小,该空间是在程序一运行就能够得到的空间。例如inta;2)、获取空间地址。该空间的地址在运行才能获取。例如 inta,*p; p=&a;变数空间的申请变数空间的申请就是向系统要空间。申请空间的方法10变数空间的申请2、动态申请空间1)、申请空间。是在编写程序时就不能够明确空间大小,只有在程序运行过程中才知道需要的空间,例如 int*p; p=(int*)malloc(5*sizeof(int));2)、获取空间地址。如果该空间申请成功了则返回的值就是该空间的地址。例如上例的p变数空间的申请2、动态申请空间11存放空间与地址关系内存的编址是按字节编的,每个字节都有一个地址。每种数据类型、每一批数据占用的空间大小是不一样的,C语言中所指的地址是分配空间的第1个字节的地址。存放空间与地址关系内存的编址是按字节编的,每个字节都有一个地12常数与变数存放空间机器指令由操作码和操作数两部分组成。如果操作数是常数,则操作数就是这个常数的值,所以无法获取常数的地址。也就是机器指令内包含这个数值。如果操作数是变数,则操作数就是这个变数在内存的地址,这个内存(即变数所在内存中的几个字节)才存放这个变数的值。也就是说机器指令与变数是分开存放的,所以变数有独立的地址,我们在程序运行过程中可以获取该地址。常数与变数存放空间机器指令由操作码和操作数两部分组成。13变数分类变数的分类(根据一次所能表示数据个数分类):1、单个数据:变量2、一批数据(同数据类型):数组3、一批数据(不同数据类型):结构体变数的使用原则:1、先定义后使用;2、第一次使用必须是写数据,即初始化变数分类变数的分类(根据一次所能表示数据个数分类):14变数各种定义变量一维数组二维数组结构体及结构体变量inta;inta[10];inta[3][4];structstudent{charname[10];intage;};Structstudentstu;Stu称结构体变量结构体student是自定义的复杂的数据类型,必须通过结构体变量发挥作用。一个结构体定义后,原理上就就可以象基本数据类型char、int等一样的使用,形式上要加上关键字struct变数各种定义变量一维数组二维数组结构体及结构体变量int15变数的初始化方式一变数类型初始化变量inta=1;一维数组inta[10]={0,1,2,3,4,5,6,7,8,9};二维数组inta[3][4]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};结构体变量structstudent{charname[10];intage;intabc[3]};structstudentstu={“abc”,10,{10,20,30}};说明:1、初始化方式一,就是在定义时同时给出数据。2、结构体变量初始化时各分量的初始化完全参见变量与数组的初始化方法变数的初始化方式一变数类型初始化变量inta=1;一维数16变数的初始化方式二变数类型初始化变量inta;a=1;一维数组inta[10];a[0]=0;二维数组inta[3][4]a[0][0]=1;结构体变量structstudentstu;stu.age=10;stu.abc[0]=11;说明:初始化方式二,就是在赋值方式。structstudent{charname[10];intage;intabc[3]};变数的初始化方式二变数类型初始化变量inta;一维数组i17变数的使用(读与写)方法一变数类型程序段访问方式变量inta,b=2;a=b+1;通过变量名使用数据。a=b+1;将分配给b的空间数值2读出加1写入分配给a的空间中一维数组inta[10];a[3]=0;通过数组名和下标使用数据。a[3]=0;将数值0写入分配给a[0]空间中二维数组inta[3][4]a[1][2]=1;通过数组名和下标使用数据。a[1][2]=1;将数值1写入分配给a[1][2]空间中结构体变量structstudentstu;stu.age=10;stu.abc[0]=11;通过结构体变量名.分量名使用数据。stu.age=10;将数值10写入分配给stu.age空间中说明:方法一就是通过名使用该变数存放空间的数值。变数的使用(读与写)方法一变数类型程序段访问方式变量int18变数的使用(读与写)方法二说明:方法二就是通过指针变量使用该变数存放空间的数值。在讲指针之前再提存放空间的属性:大小和地址大小:是以字节为单位计量的,一个数据占用的空间就是若干个字节,例如int占4个字节。地址:每个字节都要地址,空间地址是指该空间的第一个字节的地址。指针变量:就是存放地址的变量。所以它也有空间,也有对应的值。空间的大小不是我们一般类似int所规定,而是系统的C语言和操作系统所规定,即地址总线数规定,所以在使用过程中我们一般不考虑指针变量的空间大小和地址。变数的使用(读与写)方法二说明:方法二就是通过指针变量使用该19变数的使用(读与写)方法二变量程序段说明方法一inta,b=2;a=b+1;a=b+1;将分配给b的空间数值2读出加1写入分配给a的空间中方法二&是获取地址运算符*是对某地址的空间进行操作(读或写)inta,b=2,*p1,*p2;p1=&a;p2=&b;*p1=*p2+1;定义2个变量,2个指针变量将a变量空间地址赋给p1将b变量空间地址赋给p2将p2指向空间的值取出(读操作)+1,然后将和存入(写操作)p1指向的空间说明:方法二就是通过指针变量使用该变数存放空间的数值。变数的使用(读与写)方法二变量程序段说明方法一inta,20变数的使用(读与写)方法二一维数组程序段说明方法一inta[10];a[3]=0;通过数组名和下标使用数据。a[3]=0;将数值0写入分配给a[3]空间中方法二inta[10],*p1;第1种p1=&a[3];*p1=0;将a[3]数组元素空间地址赋给p1将0存入(写操作)p1指向的空间第2种p1=&a[0];*(p1+3)=0;将a[0]数组元素空间地址赋给p1p1+3的和是a[3]的空间地址,即指向a[3],*(p1+3)=0将0写入a[3]空间第3种数组名是首指针p1=a;*(p1+3)=0;将数组首地址(数组空间地址)赋给p1p1+3的和是a[3]的空间地址,即指向a[3],*(p1+3)=0将0写入a[3]空间说明:方法二就是通过指针变量使用该变数存放空间的数值。变数的使用(读与写)方法二一维数组程序段说明方法一int21变数的使用(读与写)方法二二维数组程序段说明方法一inta[3][4];a[1][2]=1;通过数组名和下标使用数据。a[1][2]=1;将数值1写入分配给a[1][2]空间中方法二inta[3][4],*p1;第1种p1=&a[1][2];*p1=1;将a[1][2]数组元素空间地址赋给p1将1写入p1指向的空间第2种p1=&a[0][0];*(p1+1*4+2)=1;将a[0][0]数组元素空间地址赋给p1p1+1*4+2的值是a[1][2]的空间地址,即指向a[1][2],*(p1+1*4+2)=1将1写入a[1][2]空间第3种数组名是首指针p1=a;*(p1+1*4+2)=1;将数组首地址(数组空间地址)赋给p1同第2种说明:方法二就是通过指针变量使用该变数存放空间的数值。变数的使用(读与写)方法二二维数组程序段说明方法一int22变数的使用(读与写)方法二结构体程序段说明方法一structstudentstu;stu.age=10;stu.abc[0]=11;方法二structstudentstu,*p1;第1种p1=&stu;p1->age=10;p1->abc[0]=11;获取stu的(首)地址相对方法一,仅用p1->代替stu.第2种p1=&stu;(*p1).age=10;(*p1).abc[0]=11;相对方法一,仅用(*p1)代替stu说明:方法二就是通过指针变量使用该变数存放空间的数值。注意结构体指针的写法不同于一般的指针写法变数的使用(读与写)方法二结构体程序段说明方法一struct23变数的使用(读与写)方法小结形式空间(字节)空间地址数值操作变量inta,*p;4a=1;p=&a;*p=1;一维数组inta[10],*p4*10=40a[3]=12;p=&a[3];*p=12;p=&a[0];*(p+3)=12;p=a;*(p+3)=12;二维数组inta[3][4];int*p4*3*4a[2][3]=12;p=&a[2][3];*p=12;p=&a[0][0];*(p+2*4+3)=12;p=a;*(p+2*4+3)=12;变数的使用(读与写)方法小结形式空间(字节)空间地址数值操作24变数的使用(读与写)方法小结形式空间空间地址数值操作结构体structstudent{charname[10];intage;intabc[3]};1*10+4+4=18结构体变量structstudentstu,*p;stu.age=12;[0]=‘a’;p=&stu;(*p).age=12;(*p).name[0]=‘a’;p=&stu;p->age=12;p->name[0]=‘a’;变数的使用(读与写)方法小结形式空间空间地址数值操作结构体s25结构体的特性1、结构体是自定义的一种数据类型,必须在此基础上定义结构体变量,对结构体变量才能进行读写操作,对结构体是不能进行读写操作的。2、结构体可与数组交叉定义,构成复杂的数据结构,但使用起来非常方便,这是我们从现在开始的学习工作中必须要注意的问题。3、结构体变量可对结构体变量的分量进行读写操作,也可以对结构体变量整体进行读写操作,而数组只能对数组元素进行读写操作,不能对数组整体进行读写操作。结构体的特性1、结构体是自定义的一种数据类型,必须在此基础上26数据注意常量与枚举类型数据的区别数据注意常量与枚举类型数据的区别27语句的使用一、赋值语句
简单、大量使用。二、分支语句
根据思路需分支。三、循环语句
必须是处理批量数据。找数据有规律,操作数据数据有规定。注意循环的初始条件和结束条件,并且在循环的过程中一定要达到结束条件。语句的使用一、赋值语句28编程序(函数1)一、何时才能有函数
当一个程序完成一项任务,而这个任务需有若干个子任务共同完成,那么此时就应该用函数方式编写程序。二、什么样才能成为一个函数
通常函数的功能就是解决一个问题。即完成一个任务。三、函数的使用函数的使用称为调用,被使用的函数称为被调用函数,使用函数的函数称为调用函数。编程序(函数1)一、何时才能有函数29编程序(函数2)四、调用函数与被调用函数之间的位置关系1、函数必须定义了才能被使用。2、之前。被调用函数定义在调用函数之前。无需任何说明。3、之后。被调用函数定义在调用函数之后。必须在调用函数之前加函数说明语句。五、调用函数与被调用函数之间如何发生关系1、调用函数通过调用参数使被调用函数发生作用。被调函数通过返回值的方式将作用结果返回给调用函数。2、调用参数可以0个、1个、2个、n个。不能是一批数据,即不能是一个数组,可以是一般变量、数组元素、数组名、指针、结构体变量。3、返回数据只能是0个和1个。可以是一般变量、数组元素、数组名、指针、结构体变量。编程序(函数2)四、调用函数与被调用函数之间的位置关系30编程序三(变量型传递)调用函数被调函数说明inta,b,m;……m=max(a,b);intmax(inta,intb){intmm;if(a>b)mm=a;elsemm=b;returnmm;}编程序三(变量型传递)调用函数被调函数说明inta,b,31编程序三(数组型传递)调用函数被调函数说明inta[5]={1,2,3,4,5};Intm;……m=max(a,5);intmax(intb[],intarrmax){inti,mm;mm=b[0];for(i=1;i<arrmax;i++){if(mm<b[i])mm=b[i];}returnmm;}数组的传递是传递的数组首地址,所以必须还有数组的大小,故一维数组要传递两个数据,二维数组要传递三个数据(为什么)。编程序三(数组型传递)调用函数被调函数说明inta[5]32编程序(结构体型传递)调用函数被调函数structstudentstu;……stu.age=10;stu.grade=20;stu=max(stu);structstudentmax(structstudentmm){mm.age=30;mm.grade=mm.grade+20;returnmm;}说明:传送的参数和返回的参数只是一个结构体变量,但该变量中含有若干数据。非常重要非常有用编程序(结构体型传递)调用函数被调函数structstud33编程序(各种变量区别)全局变量、局部变量、static变量的区别:全局变量局部变量Static局部变量定义位置在程序文件的头部,函数外在函数的头部,函数内在函数的头部,函数内存在周期从程序运行开始到程序运行结束本次函数运行开始到本次函数运行结束本次函数运行开始到程序运行结束使用范围大家都可以使用,并且值大家共享只有定义的函数才能使用,每次使用其值重新开始只有定义的函数才能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 欧盟版权产品平行进口法律问题探究:基于利益平衡与市场秩序视角
- 橡胶沥青混合料压实特性:多因素影响与优化策略探究
- 模糊P系统:建模方法与模拟技术的深度探究
- 模块化课程视角下中职财会类专业语文教材内容选择探究
- 健身爱好者力量训练计划制定与调整指南
- 脾破裂患者的护理
- 家庭厨房烹饪制作美味佳肴十步手册
- 培训机构信誉保障承诺书7篇
- IT系统安全漏洞修复管理指南
- 区域环境治理承诺书范文4篇
- GB/T 46079-2025聚合物增材制造原材料激光粉末床熔融用材料的鉴定
- (正式版)DB32∕T 5156-2025 《零碳园区建设指南》
- 化工工艺设计培训
- 物业客诉培训课件
- 应急管理通论(第二版)课件 第9章 应急沟通职能
- 要素式民事起诉状(侵害著作权及邻接权纠纷)
- 学堂在线 唐宋词鉴赏 章节测试答案
- 皮肤外科进修汇报
- 公司厂房租赁管理制度
- 防汛应急服务合同范本
- T/CTRA 01-2020废轮胎/橡胶再生油
评论
0/150
提交评论