摘要: ## 内存分配方式 内存分配方式有三种: 1. 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。 2. 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算 阅读全文
posted @ 2023-08-17 14:37 suntl 阅读(60) 评论(0) 推荐(0)
摘要: ## sscanf函数的高级用法 sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 ### 函数原型: int sscanf( const char *format [,argument]... ); 其中的format可以是一个或多个: 阅读全文
posted @ 2023-08-17 14:19 suntl 阅读(467) 评论(0) 推荐(0)
摘要: ## sizeof()功能:计算数据空间的字节数 ### 与strlen()比较 1. strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 2. 而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 ## 指针与静态数组的size 阅读全文
posted @ 2023-08-17 09:36 suntl 阅读(150) 评论(0) 推荐(0)
摘要: [[转载]](http://blog.csdn.net/nileel/archive/2009/06/29/4307284.aspx "[堆和栈在内存中的区别]") ## 堆和栈在内存中的区别 ### 内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数 阅读全文
posted @ 2023-08-17 09:25 suntl 阅读(111) 评论(0) 推荐(0)
摘要: C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。 ## 指定的初始化 很多人都知道像这样来静态地初始化数组: ```c int fibs[] = {1, 1, 2, 3, 5} 阅读全文
posted @ 2023-08-16 14:28 suntl 阅读(58) 评论(0) 推荐(0)
摘要: ```c char* stristr(char* pString, char* pFind) { unsigned long pFind_len=0; unsigned long cmp_len=0; char *pt1 = NULL, *pt2 = NULL; char* pString_pt = 阅读全文
posted @ 2023-08-16 11:23 suntl 阅读(392) 评论(0) 推荐(0)
摘要: C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础,但一不小心就会弄错。写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢? 开始学的时候,也被此类问题困扰很久。其实相关的文章很多,感觉说清楚 阅读全文
posted @ 2023-08-16 10:40 suntl 阅读(109) 评论(0) 推荐(0)
摘要: [C宏定义的简单总结](http://www.cppblog.com/BlueSky/archive/2007/11/20/37000.html "C宏定义的简单总结") 今天在网上突然发现了下面几个关于c代码中的宏定义的说明,回想下,好像在系统的代码中也见过这些零散的定义,但没有注意,看到别人总结 阅读全文
posted @ 2023-08-16 09:39 suntl 阅读(73) 评论(0) 推荐(0)
摘要: ## 如何实现模块间高内聚、低耦合? 1. 封装与抽象; 2. 添加中间层; 3. 模块化; 4. 设计思想与原则 1. 单一职责; 2. 接口隔离原则; 3. 依赖倒置; 4. 迪米特原则; 5. 多用组合少用继承; 5. 设计模式:观察者模式 ## 设计原则及设计模式 ### 六大设计原则: 单 阅读全文
posted @ 2023-08-15 09:56 suntl 阅读(86) 评论(0) 推荐(0)
摘要: ## OSI七层模型都有哪些,其中tcp/ip位于哪一层? 物理层、数据链路层、网络层、传输层、会话层、表示层及应用层,其中TCP/UDP位于传输层,而IP位于网络层。 ## tcp和udp的区别 1. TCP是流式报文,而UDP是数据包式报文; 2. TCP是面向连接的,而UDP是面向无连接的; 阅读全文
posted @ 2023-08-14 16:50 suntl 阅读(99) 评论(0) 推荐(0)
摘要: ## 线程、进程的区别 线程:CPU调度的最小单元 进程:进行中的程序,资源分配的最小单元 ### 线程和进程的区别及联系: 1. 一个进程可以有多个线程,但至少要有一个进程 2. 多个进程共享一个进程中的所有资源,而多个进程之间是没有联系的 3. 一个进程中的某一线程中断,会造成整个进程的退出或者 阅读全文
posted @ 2023-08-14 15:13 suntl 阅读(261) 评论(0) 推荐(0)
摘要: ## C++的特征有那些 ### 封装 将同类型事物的属性和方法进行抽象,并对其进行封装。 ### 继承 子类继承父类的,实现代码的可扩展性。继承分为单继承、多继承以及菱形继承(菱形继承可通过虚函数进行实现) ### 多态 #### 定义 在基类前添加virtual关键字,在派生类中重写该函数,程序 阅读全文
posted @ 2023-08-11 16:16 suntl 阅读(65) 评论(0) 推荐(0)
摘要: ## C和C++的区别 1. C++是C的超集,C是面向过程化的结构性语言,而C++是面向对象的编程语言 2. C语言更偏向于底层,使用较为灵活,可移植性强,而C++更偏向于上层,可扩展性强,对于大型项目往往使用C++ 3. C++在C语言的基础上提出了STL标准模板库,函数模板等特性 ## sta 阅读全文
posted @ 2023-08-10 14:59 suntl 阅读(287) 评论(0) 推荐(0)
摘要: 原因 经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具但是由于国外官方默认pip访问速度慢,经常被墙,导致无法安装,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼 USER_BASE 和 USER_SITE 其实就是用户自定义的启用Pyt 阅读全文
posted @ 2019-07-28 15:44 suntl 阅读(14592) 评论(0) 推荐(0)
摘要: 爬虫是一个比较容易上手的技术,也许花5分钟看一篇文档就能爬取单个网页上的数据。但对于大规模爬虫,完全就是另一回事,并不是1*n这么简单,还会衍生出许多别的问题。 系统的大规模爬虫流程如图所示。 先检查是否有API API是网站官方提供的数据接口,如果通过调用API采集数据,则相当于在网站允许的范围内 阅读全文
posted @ 2019-07-22 00:31 suntl 阅读(763) 评论(0) 推荐(0)