编程(知识点)

目录

1.O(Log2n)(以2为底n的对数)与O(n)在运行时间上的差距

2.stdlib.h文件包含哪些常用的函数?

3.僵尸进程

4.内存泄漏

5.exit(0)与exit(1)的区别

6.科学记数法在c语言中的表示

 

 

 

 

 

 

1.O(Log2n)(以2为底n的对数)与O(n)在运行时间上的差距

 

当n=10000(一万)时

Log2n=9.2

 

当n=100000(十万)

Log2n=11.5

 

 

当n=1000000(一百万)

Log2n=13.8

 

当n=一亿时

Log2n=18.4

 

 

 

2.stdlib.h  这个文件里包含malloc(),free(),exit()等函数

3.僵尸进程僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源

危害:由于子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 那么会不会因为父进程太忙来不及wait子进程,或者说不知道 子进程什么时候结束,而丢失子进程结束时的状态信息呢? 不会。因为UN提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。这种机制就是: 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等)。直到父进程通过wait / waitpid来取时才释放. 但这样就导致了问题,如果进程不调用wait / waitpid的话,那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。

 

  4.exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值   
  exit(0)表示正常退出   

 

5.内存泄漏Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

 

6.科学记数法在c语言中的表示

1e6 表示1乘以10的六次方

1e-6表示1乘以10的负六次方

若想表达10的n次方建议用pow(x,y)函数 表示x的y次方

猜你喜欢

转载自blog.csdn.net/a13683857889/article/details/87367287