赞
踩
C语言:是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。
C程序的特点:由函数构成;一个函数由函数首部和函数体构成;从main中开始执行且从main中结束;每个语句和数据声明的最后必须有分号(;);其本身没有输入和输出语句;//单行注释,/* */多行注释;格式自由,一行内可以写多个语句,一个语句可以分多行写;
算法:程序按指定的次序执行一系列操作解决问题的过程描述称为算法。
算法的特性: (1)有穷性;(2)确定性;(3)有零个或多个输入;(4)有一个或多个输出;(5)可行性。口诀:有可确出入
机器语言:机器能直接识别的程序语言或指令代码,无需翻译,依赖具体计算机,属于低级语言,无通用性。
高级语言:一种面向对象面向过程面向对象或者面向过程的语言,方便人识别的语言,不依赖具体计算机,通用性强。Java、c、c++、python都是高级语言
程序:就是一组能识别和执行的指令,每一条指令使计算机执行特定的操作,一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具
程序设计:是指从确定任务到得到结果、写出文档的全过程
源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令
目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名
可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序
预编译:又称为预处理,是做些代码文本的替换工作。c语言提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译。
程序调试/编辑:编写代码,制作C语言的源文件。上机输入或者编辑源程序。修正语法错误和逻辑错误的过程(源程序,后缀是.c)
程序测试/编译:是由编译程序将C语言源文件转换成二进制中间文件。(检查代码是否有错,无错则转换为二进制机器语言)(产生目标文件,后缀是.obj)
程序连接:将编译中生成的中间文件组合成二进制可执知行文件。/将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接。(产生可执行文件,后缀是.exe)三种方式: (1)静态链接:在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。 (2)装入时动态链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,釆用边装入边链接的链接方式。(3)运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。其优点是便于修改和更新,便于实现对目标模块的共享。
程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令
执行:运行可执行文件,这个是编写程序代码最终目的。
程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序
函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能。c语言的基本单位是函数。
主函数:又称main函数,是程序执行的起点。有且仅有一个主函数(main函数)。c语言程序是从main函数开始执行,到main函数的return 0结束。main函数里面语句块是用{}包括起来。main函数可以出现在程序的任意位置,不是一定出现在头部
被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数
库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数
C中的数据类型包括:基本类型、构造类型、指针类型、空类型等。
基本类型包括:整型、字符型、实型(浮点型)等。
构造类型包括:枚举型、结构体、共用体、数组
标识符:是用户编程时使用的名字。用来标识某个实体的一个符号,是对变量名、函数名、标号和其他各种用户定义的对象命名。首字母不能是数字(以字母和下划线_开头);不能把C的关键字作为用户的标识符;标识符长度是由机器上的编译系统决定的,一般的限制为8字符;标识符对大小写敏感,即严格区分大小写;标识符命名应做到"见名知意",例如:sum(求和)
整数:整数的存储方式是直接存储,如0001010
实数:实数采用指数形式存储,如124.5则储存为|+|,1245|+|3|
字符:字符则是以二进制直接存储,读写时通过计算机按照ASCII码转换,如65的二进制是1000001,在ASCl码中对应的是字符A
常量:指程序运行过程中值不改变的量
变量:指在程序运行过程中可以改变的量。变量可以通过变量名访问。
变量名:是一个标识符,用来指代一块内存区域,即变量,使用变量使我们操作内存以区域、以块为单位,提高了方便性。
变量地址:系统要读取变量的值时,是要通过地址找到这个变量
存储单元:存储的关键是存储单元,每个存储单元对应一个变量地址,访问时通过变量地址访问,存储单元里面可以存储变量值,为了方便访问存储单元,可以用变量名代表变量地址
字符常量:是用单引号括起来的字符,占一个字节。如‘&’;转义字符是用来作为输出信息时的控制符号如‘\n’代表换行
字符变量:是用来存放字符常量的,它只能放一个字符,把该字符的相应ASCII码值存放到该存储单元中
字符串常量:是由若干个字符组合而成,用双引号括起来,将字符存储,并自动在其末尾加上‘\0’作为字符串结束的标志,所以字符串常量在内存中所占用的字节数为字符串长度+1。
运算规则:先乘除后加减,同级情况下自左向右,进行%运算要双目为整形。
顺序结构:是最基本的一种结构,按照从上到下的顺序执行
选择结构:当我们再执行下一个语句之前根据一个条件做出判断,选择下面的那一条语句或那一段语句,分支的概念也由此产生。
循环结构:当我们需要重复处理一点相同逻辑的代码时,就可以采用循环结构,这样可以大大减少代码量
表达式:是操作符、操作数和标点符号组成的序列,其目的是用来说明计算过程。
表达式语句:是在表达式后加分号,如i=1是表达式,i=1;则为表达语句。程序中的计算功能主要由表达式语句来完成。目的:规范代码语法格式,符合编译器的设置。
算术运算:是指加减乘除和整数的模运算(即取余数运算)。
关系运算:是比较运算,将两个数值进行比较,判断其比较结果是否符合给定的条件。
逻辑运算:两个条件进行运算,有逻辑与、逻辑或、逻辑非三种。
循环结构:可以帮助我们完成需要重复常量的问题。
循环的分类:(1)无休止的循环(2)有终止的循环,达到一定条件循环就结束了。计算机程序只处理有条件的循环,算法的特性是有效性、确定性和有穷性,如果程序死循环则错。
提前结束循环的两种方法:用break提前结束整个循环,用continue提前结束本次循环。
数组:是有序数据的集合,每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素。使得具有同一属性的若干个数据组织成一个整体,互相关联,便于统一处理。
模块化编程的好处:把一个多功能的复杂的程序划分为若干个简单的功能单一的程序模块,有利于程序的优化和分工,提高程序的阅读性和可靠性。
变量的作用域:是指变量有效的范围。根据定义变量的位置不同,变量分为局部量和全局变量。
局部变量:在函数内或复合语句中定义的变量都是,其作用域限制在函数内或复合语句内,函数或复合语句外不能引用该变量。生命周期则是局部函数或过程调用的时间段。局部变量存储在栈区。局部变量在用户栈中动态分配空间。
全局变量:在函数外定义的变量,其作用域为从定义点到本文件末尾。生命周期是整个程序运行的时间。全局变量存储在全局区,全局变量在main函数调用后,就开始分配空间。可以用extern对变量作“外部声明”,将作用域扩展到本文件中作extern声明的位置处,或在其他文件中用extern 声明将作用域扩展到其他文件。
静态变量:生命周期是全局,作用域仍然有限,在哪个{ }大括号里定义的,只能在哪个大括号里使用,但是作用域范围不会被释放,直到程序结束后才会被释放;静态变量在main函数前就已经初始化了。用static声明的静态全局变量禁止其他文件引用该变量,只限本文件内引用。
变量的生存期:是变量存在的时间。全局变量的生存期是程序运行的整个时间。局部变量的生存期是不相同的。用auto或register 声明的局部变量的生存期与所在的函数被调用的时间段相同,函数调用结束,变量就不存在了。用static声明的局部变量在函数调用结束后内存不释放,变量的生存期是程序运行的整个间。凡不声明为任何存储类别的都默认为auto(自动变量)
内部函数:一个函数只能被本文件中其他函数所调用。在定义内部函数时,在函数名和函数类型的前面加static,即 static 类型标识符 函数名(形参表);
外部函数:可供其他文件调用的函数。在定义外部函数时,在函数首部的最左端加关键字extern
函数:在C语言中,函数是用来完成某一个特定功能的。C程序是由一个或多个函数组成的。函数是C程序中的基本单位。执行程序就是执行主函数和由主函数调用其他函数。因此编写C程序,主要就是编写函数。
形参变量:只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。
实参变量:可以是常量、变量、表达式、函数等,在进行函数调用时,它们都必须有确定的值, 以便把这些值传送给形参。函数调用过程是单向的,形参的改变不会影响到实参。
库函数:必须在本文件的开头用include指令把与该函数有关的头文件包含到本文件中来(如用数学函数时要加上include<math.h>)。
自己定义的函数:必须先定义,后调用。需要注意:如果函数的调用出现在函数定义位置之前,应该在调用函数之前用函数的原型对该函数进行引用声明。
函数的定义:是指对函数功能的确立,包括指定函数名、函数值类型、形参及其类型以及函数体等,它是一个完整的、独立的函数单位。
函数的声明:是把函数的名字、函数类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查。
指针:指针就是地址,地址就是指针。地址就是内存单元的编号。凡是出现“指针”的地方,都可以用“地址”代替。地址指向该变量单元。因此,将地址形象化的称为”指针”。利用一个指针可以去操作一个数组,但是指针是一个可以变化的变量,可以实现自加自减的操作,但是数组是不可以这样操作的,数组一经定义就不能改变了,只能进行数组与数组之间长度相加。
指针变量:存放内存地址的变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。
指针运算:将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加减,将一个变量地址赋给一个指针变量,指针间的比较等
指针数组:是这个数组的所有元素都是指针类型。
数组指针:是这个指针指向一个数组的首地址。
指针函数:是一个函数,返回值是一个指针,要注意返回的这个指针不能是局部变量。
函数指针:是一个指针,是一个指向函数的指针,是调用函数的入口。
野指针:是格式不规范,有问题的指针。是指针指向的位置是不可知的指针。
值传递/传值调用:是把变量的值当做参数传递进子函数中,无论函数体中如何改变参数值,主函数的变量值都不会改变。
地址传递/传址调用:是把变量的地址传入子函数中,子函数中对于参数的改变,是通过传入的地址参数去内存中修改该变量存储的值,所以主函数中的变量值也会同步改变。
类:是属于用户自定义的数据类型, 并且该类型的数据具有一定的行为能力, 也就是类中说描述的方法。通常来说, 一个类的定义包含两部分的内容, 一是该类的 属性, 另一部分是它所拥有的 方法 。 以 "人类" 这个类来说, 每个人都有自己的姓名、年龄、出生日期、体重等, 为 人类 的属性部分, 此外, 人能够吃饭、睡觉、行走、说话等属于人类所具有的行为。
class/struct 类名 //类头
{数据和方法的定义(可能含有类型成员)}; //类体
结构体:C语言允许用户自己建立由不同类型数据组成的组合型的数据结构。是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型。特点:1、结构体可以在一个结构体中声明不同的数据类型; 2、相同的结构的结构体变量可以相互赋值; 3、节省内存空间。 4、高效率。
类 | 结构体 | |
存储位置 | 栈/堆 | 栈 |
执行效率 | 低 | 高 |
有无析构函数 | 有 | 无 |
可否继承 | 可 | 否 |
析构函数:是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个“~”符号。在C++中“~”是位“取反”运算符,从这一点可以想到:析构函数是与构造函数作用相反的函数
结构化程序设计:是进行以模块功能和处理过程设计为主的详细设计的基本原则。主要观点是采用自顶向下、逐步求精的程序设计方法;各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口、一个出口 。
结构体变量的指针:是结构体变量的起始地址,注意它的基类型是结构体类型的数据。可以定义指向结构体变量的指针变量,这个指针变量的值是结构体变量的起始地址。指向结构体变量的指针变量常用于作为函数参数和链表中(用来指向下一个结点)。
动态数据结构:结构体变量和指向结构体变量的指针结合起来,可以建立动态数据结构(如链表)。开辟动态内存空间用malloc函数,函数的返回值是所开辟的空间的起始地址。利用所开辟的空间作为链表的一个结点,这个结点是一个结构体变量,其成员由两部分组成:一部分是实际的有用数据,另一部分是一个指向结构体类数据的指针变量,利用它指向下一个结点。
枚举类型:是把可能的值全部一一列出,枚举变量的值只能是其中之一。实际生活中有些问题没有现成的数学公式来解决,只能把所有的可能性一一列出,测试其是否满足条件,这时用枚举变量比较方便。
文件使用前必须“打开”,用完后应当“关闭”。
文件打开:是建立相应的文件信息区,开辟文件缓冲区。由于建立的文件信息区没有名字,只能通过指针变量来引用,因此一般在打开文件时同时使指针变量指向该文件的信息区,以便程序对文件进行操作。
文件关闭:是撤销文件信息区和文件缓冲区,指针变量不再指向该文件。使用完如果不关闭文件可能会丢失数据。
文件:是在存储在外部介质上数据的集合,操作系统把所有输入输出设备都作为文件来管理。每一个文件需要有一个文件标识,包括文件路径、文件主干名和文件后缀。
分类:根据文件的组织形式,文件可以分为ASCII文件和二进制文件。
栈:为执行线程留出的内存空间。由编译器自动分配释放,存放函数参数值,局部变量的值等。栈内存存储的是局部变量;栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短,栈内存存放的变量生命周期一旦结束就会被释放。
堆:为动态分配预留的内存空间。一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。堆内存存储的是实体。堆内存存放的实体会被垃圾回收机制不定时的回收。
C语言程序中主要用到两种文件:(1) 程序文件。包括源程序文件、目标文件、可执行文件等。这种文件是用来存放程序的,以便实现程序的功能。(2) 数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘的数据,或者供程序运行时读入内存的数据。
文件名:一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名主干的命名规则遵循标识符的命名规则。后缀用来表示文件的性质,一般不超过3个字母。文件标识包括三部分:(1)文件路径:(2)文件名主干;(3)文件后缀。
文件路径:表示文件在外部存储设备中的位置。
文件名主干:命名规则遵循标识符的命名规则。
文件后缀:用来表示文件的性质,一般不超过3个字母。
D:\CC \ temp \filel. dat
- 文件路径:D:\CC \ temp
- 文件名主干:filel.
- 文件后缀:dat
表示filel.dat文件存放在D盘中CC目录下的temp子目录下面。
数据流:输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象成为流,即数据流。流表示信息从源到目的端的流动。在输入操作时,数据文件是由操作系统进行统一管理的,无论是用Word打开或保存文件,还是C程序中的输入输出都是通过操作系统进行的。
数据文件:有两类,分别为ASCIl文件和二进制文件。ASCII文件又称文本文件,它的每一字节放一个字符的ASCII代码。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。字符型数据只能以ASCII形式存储,数值型数据可以用ASCII形式存储到磁盘上,也可以用二进制形式存储。
映像文件:数据在内存中是以二进制形式存储的,如果不加转换地输出到外存,就是二进制文件,可以认为它就是存储在内存的数据的映像,所以称为映像文件。
文件指针:文件指针是缓冲文件系统中的一个重要的概念。用来存放文件有关信息。文件指针是指向FILE类型数据的,具体来说就是指向某一文件信息区的开头。通过这个指针可以得到文件的有关信息,从而对文件进行操作。这就是指针指向文件的含义。
文件缓冲区:是用以暂时存放读写期间的文件数据而在内存区预留的一定空间。(通过 磁盘缓存 来实现,磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储器存储空间的扩充,即利用主存中的存储空间, 来暂存从磁盘中读出 (或写入)的信息。)好处:可减少读取硬盘的次数。
文件信息区:在文件打开时,在内存建立一个文件信息区,用来存放文件有关信息。这个信息区的数据组织成结构体类型,系统把它命名为FILE类型。
指向文件的指针变量:通常将这种文件信息区的指针变量简称为指向文件的指针变量。指向文件的指针变量并不是指向外部介质上的数据文件的开头,而是指向内存中的文件信息区的开头。通过文件指针变量能够找到与它关联的文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。