C语言总结(2)

来源:互联网 发布:网络教学软件 编辑:程序博客网 时间:2024/05/18 01:03

1、静态库与动态库的区别,各自的优缺点

区别:

          静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。

         动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。

优缺点:

             使用静态链接方式产生的可执行的文件体积较大,但运行效率高,动态链接产生的可执行文件由于没有库文件,所以体积较小。但由于需要动态加载库函数,所以运行效率要低一点。

2、简述strcpy,sprintf和memcpy的区别

     1、操作对象不同,strcpy是对字符串的操作,sprintf可以是任意数据类型,其目的对象是字符串。memcpy是任意数可操作的据类型内存地址。

     2、执行效率不同:memcpy最高,其次strcpy,sprintf效率最低

     3、实现功能不同:strcpy是将两字符串进行拷贝,sprintf是将其他数据类型转换成字符串,memcpy是内存块间的拷贝。

3、链表和数组的区别

数组静态分配内存,链表动态分配内存;

数组在内存中连续,链表不连续;

数组元素在栈区,链表元素在堆区;

数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);

数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。



0 0