1、linux常识汇总:
GNU=GNU‘s Not UNIX,为了区别于UNIX系统;
Linux是类UNIX操作系统,免费、开源是其最大的特点,是多用户多任务且符合POSIX标准的操作系统;
目标:非私有的、开放的操作系统;
条款:GPL=General Public Licence;
UNIX与Linux区别:UNIX大多与硬件配套,而linux可运行在多种硬件平台上;
1991年由Linus Torvalds开发,1994年发布Linux1.0;
Linux2.6.10:2是主版本号,6是次版本号,偶数表示是稳定版本,奇数表示是不稳定版本,10表示第10次修订;
Linux的发展方向:服务器领域(主要)、嵌入式系统领域、桌面应用方面;
Linux的五大支柱:UNIX OS、MINIX OS、GNU计划、POSIX标准和Internet。
Linux下的编程语言:C、C++、Java、Perl、Python、Rudy、PHP......
2、控制结构是C语言的基石:
Goto语句的基本功能:无条件跳转、出错处理(核心思想:释放资源的顺序与申请资源的顺序相反)
短路计算:只计算第一个表达式就可以确定整个表达式的值的方法成为短路计算。常见的如:“与”、“非”
C语言中的循环结构:while和for在机器内部是等效的;do..while至少要执行一次循环语句,这是与while之间的区别。
switch语句:实现程序的跳转,不同的是其执行效率比if..else要高,但在程序中所占用的空间方面,要维护一张跳转表,典型的空间换取时间的例子。
3、优化控制结构:
表达式优化:替换程序中的乘除法、常量折叠、使用数学公式、存储问题
分支优化:改变判断顺序、使用switch语句
循环优化:一次性计算(在循环中有些计算是多次不变的,例如常量赋值)
注:加减法、位运算、移位操作->乘法运算->除法运算,速度由快至慢。
4、函数的本质:
函数是一种特殊的控制流程,只有理解函数的本质,才能理解程序中的存储类别和模块化程序设计的思想。
函数的本质:一段机器指令代码(一段二进制可执行代码,这些代码是一些可以被机器直接执行的指令)。
函数名的本质:一个标号,该标号的值等于内存中存储函数代码的内存空间的首地址。
5、变量的初始值:
对于全局变量来说,如果一个全局变量未被初始化,其初始值由编译器自动设置为0,因此使用一个全局变量时,不需要考虑其初始值问题,直接使用就可以了。全局变量属于一个源程序文件。
对于局部变量,定义了局部变量后,编译器不会将其初始化为0,而是使用其占用的内存空间原有值,这时的值是一个随机值,与本次程序无关。局部变量存储在内存的堆栈中。因此,如果对局部变量不初始化就直接引用是很危险的。
小结:C语言程序中的局部变量存储在栈上,而全局变量存储在数据段上。