1.1 Linux C语言结构体
简介:本课程深入的讲解了C语言中,预处理是怎么回事,结构体和公用体又是如何使用及他们之间的区别,动态数据结构体是什么以及位运算的秘密。希望通过本课程的学习,能帮助小伙伴们进一步的理解C语言。
vim +10 a.c。宏定义——#defined M 10
1.2Linux C语言指针与内存
1)简介:本课程通过图形与程序实验,配合gdb调试工具,将c语言编程中最难理解的内存管理与指针形象的展示在大家面前。由于内存地址的概念偏底层,想真正掌握还需按照课程中教授的方法多做实验以加深映像,相信反复试验几次之后,大家都能够对c语言有更加深刻的理解。
老师告诉你能学到什么?1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系。
2)内存。 C语言中内存及内存的动态分配。在Linux中,运行一个C语言程序的时候,系统会给程序映射一个虚拟内存,程序是在这块虚拟内存中运行的。内存有堆与栈的概念。堆有空间大,但是效率低,空间不会自动释放。而栈有空间小,但是效率高,空间自动释放。所以要利用好指针。malloc函数申请空间,用直free释放。
数据结构的顺序表与单向链表,顺序表的特点是数据在内存中连续存放(集中存放),存储空间是静态分配的,查找非常方便,插入和删除数据时效率非常低。单向链表的特点是动态存储数据,插入和删除数据效率非常高,查找不方便,和顺序表的特点相反。因此在使用中:如果一个数组在使用中,查询比较多,而插入,删除数据比较少,数组的长度不变时,选顺序表比较合理。如果插入,删除,长度不定的数组,可以选链表。
3)指针。int a[10];pa=&a[0]; // 或者 pa=a;
1.3零散知识点。 C语言中封装。善于调用function, 而不是写一段长长的程序,让程序更有条理。单位:字节byte。1byte=8bit;二进制(计算机),十进制(显示),十六进制(编程)。32位的电脑地址总线只是32个。整数转换为32位二进制数。man(全名manual) ls为查看ls的帮助。Shell命令行解释器。echo输出命令。递归例子5的阶乘。
慕课网有一个变速的功能,0.5到2倍的速度。感叹一句:老师的打字速度就是快。
参考:慕课网