c语言的编译和执行原码反码补码、存储单元、数据结构、C语言提供的位运算符列表、空类型
循环总结
1运算符 算术+-*/ %;
2、逻辑 && || !,
3、关系><=... !=;
4、条件?:
5、if(){}
if(){}esle{}
if(){}else if{}else if{}
switch(){
case 值:语句break;
case 值:语句break;
case 值:语句break;
case 值:语句break;
deafult;
}
goto if
while(){}
do{} while();
for(;;){}
break;
continue;
c语言的编译和执行
C语言程序的代码编写完成之后,就可以在机器上运行它了。我们知道C语言是一种程序设计语言,它很容易被人们看懂和接受;但是,对于计算机来说,却不能接受这种语言,而它只能接受机器语言。为此必须首先把C语言程序翻译成相应的机器语言程序,这个工作叫编译。我们把编写好的C语言程序叫C源程序,从C源程序到在计算机上得到运行结果。
操作过程如图:C语言的编译和执行.gif
源文件的编辑:为了编译C源程序,首先要用系统提供的编辑器建立一个C语言程序的源文件。一个C源文件是一个编译单位,它以文本格式保存的。源文件名自定,文件的扩展名(或后缀名)为".c"或".cpp"。例如,
myfile.c
file.cpp
一个比较大的C语言程序往往可划分为若干模块,每个模块由不同的开发者或开发小组负责编写。对每个模块可建立一个源文件。因此,一个大的C程序可包含多个源文件,这些源文件都要进行编译。
编译:源文件建立好后,经检查无误后就可进行编译。编译是由系统提供的编译器完成,编译命令随系统的不同而异,具体操作时可参考相应的系统手册。例如,对于Turbo C,一般通过Turbo C的编辑环境界面中的Compile菜单中的Compile命令进行编译,编译器在编译时对源文件进行语法和语义检查,并给出所发现的错误。用户可根据错误情况,使用编辑器进行修改,然后对修改后的源文件再度编译。用户也可以在Compile菜单中选Make命令进行编译,它能直接生成可执行的文件,此时如果系统发现用户的源程序有语法错误,就发出错误的参考信息,提示用户进行错误代码的修改,然后用户再重新进行编译,值得注意的是,C语言的编译器不对数组越界进行检查,这一点用户自己一定要注意数组的越界问题。
连接:若在上述步骤中,用户选择Compile命令进行编译,编译所生成的目标文件(*.obj)是相对独立的模块,但还不能直接执行,用户还必须用连接编辑器把它和其它目标文件以及系统所提供的库函数进行连接装配,生成可执行文件才能执行。可执行文件的名字可自由指定,默认的执行文件的名字与源文件的名字一致,可执行文件的扩展名为“.exe”。
执行:执行文件生成后,就可执行它了。若执行的结果达到预想的结果,则说明程序编写正确。否则,就需进一步检查修改源程序,重复上述步骤,直至得到正确的运行结果为止。
存储单元
存储单元一般应具有存储数据和读写数据的功能,一般以8位二进制作为一个存储单元,也就是一个字节。每个单元有一个地址,是一个整数编码,可以表示为二进制整数。程序中的变量和主存储器的存储单存储单元元相对应。变量的名字对应着存储单元的地址,变量内容对应着单元所存储的数据。指针的内容是存储地址在存储器中有大量的存储元,把它们按相同的位划分为组,组内所有的存储元同时进行读出或写入操作,这样的一组存储元称为一个存储单元。一个存储单元通常可以存放一个字或若干个字节;存储单元是CPU访问存储器的基本单位。
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
常用数据结构
数组 (Array)
在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
栈 (Stack)
是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
队列 (Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
链表 (Linked