在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近看了这本由中国水利水电出版社出版的这本书,作者是梁永军,感觉里面的东西对我个人来说挺有用的,所以总结一下,也算是自己复习一下 第一章:C语言关键知识 1、关于内存: (1)栈:是用于那些在编译期间就能确定存储大小的变量的存储区,在函数作用域内创建,离开作用域后自动销毁。通常存储的是局部变量、函数参数等。存储区域一般是相邻的。 (2)堆:是用于那些在编译期间不确定存储大小的变量的存储区,存储空间一般是不连续的,由malloc(new)和free(delete)来申请和释放内存, (3)全局(静态存储区):在编译期间就能确定变量占用内存的大小,一般是全局变量和静态变量。 (4)常量存储区:存放的是常量,程序运行期间,全局可见,不允许被修改。 变量分为左值和右值,对于:char* p=”hello world”;中,左值是局部指针变量p,存储于函数栈上,右值是字符串常量”hello world”,存储于常量存储区。 2、函数的参数传值和传址 参数传值:把实参的值复制到函数运行时分配给函数的参数存储区中,函数不会访问调用函数的实参,被调用函数处理的是实参在本地的拷贝,这些拷贝值存储在函数的栈中。 参数传址:把实参的地址(指针或引用)传入函数,被调用的函数直接操作的是变量的地址,目的有两个:一个是改变传入的变量的值,一个是提高效率,减少参数传值过程中需要的复制过程。 在实际开发中,简单类型(int,float,char等)用参数传值;复杂类型(struct,class等)用传址。 3、常量和指针 (1)char* const a:指针常量,指针指向的char型是可以修改的,但指针是不可修改的; (2)const char *a:常量指针,char型是不可修改的,但指针可以修改。 (3)char const *a const:指针指向的char型是不可修改的,同时指针也是不可以修改的。 4、临时对象 临时对象是不可见的,不会在程序的源代码中出现,只要程序产生了一个非堆上对象而没有命名它,边诞生了一个临时对象。通常子在两种情况下发生:一个是用于函数参数类型的隐士转换,以便使得函数能被调用成功,另一个是当函数返回对象的时候。 5、预处理 (1)文件包含:#include <文件名>包含的头文件保存在C++系统目录中的include子目录下,#include “文件名”,预处理器首先在当前所在的目录中进行搜索,如果找不到,再按标准方式进行搜索。 (2)宏替换:注意括号的应用 (3)条件编译:在编译时有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。 (4)布局控制:#progma,为编译程序提供非常规的控制流信息。 #progma once:在头文件的最开始加入,保证头文件被编译一次。 #progma comment(lib,”user32.lib”)用来将user32.lib库文件加入到工程中。 #progma pack([n])使内存按照一个固定的规则分配,让分配的内存总是n的倍数 。 地址对齐:
第二章:关键算法和数据结构(需要深入学习) 1、链表 单向(双向)链表的创建、查找、插入和删除操作 2、树 树的根节点,节点的度,树的度,树的深度 二叉树 3、排序算法 (1)插入排序:直接插入排序和希尔(shell)排序 (2)选择排序:直接选择排序和堆排序 (3)交换排序:冒泡排序和快速排序 (4)归并排序:
第三章:记住C语言的常用函数库 1、<stdlib.h>:涉及类型转换、内存操作和随机函数等。 2、<stdio.h>:大部分输入输出操作函数。 3、<math.h>:数学问题的函数,用于浮点数。 4、<ctype.h>:和类型有关的函数。 5、<string.h>:字符串处理函数 6、<malloc.h>:内存处理函数。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论