随笔分类 - C、C++
1
内存管理
摘要:1.内存分配的三种方式 (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分配。程序在运行的时...
阅读全文
杂题
摘要:1.什么是二分查找排序,写出过程2.对一个单链表如何插入、删除3.函数指针是什么4.写出一个单链表的节点结构5.什么叫做字符数组越界6.new、malloc的区别7.堆栈的区别8.静态变量、局部变量、全局变量的区别9.数据库,多表查询、主键、外键10.写一个程序遍历二叉树11.com的线程模型 C++与C#的区别: C++支持多继承,C#只支持单一继承; C++可适合任何平台开发,C#只适...
阅读全文
win32程序观念
摘要:关键词语:message based, event driven, multitasking, multithreading, console programming消息基础, 事件驱动,多任务,多线程,控制台程序以消息为基础,以事件驱动之(message based, event driven)每一个Windows 程序都应该有一个回路如下:MSG msg;while (GetMessage(&...
阅读全文
C++ 里的 new 和 malloc
摘要:create instance(object) should use new, or it will not call the constructor methodmalloc is used to malloc memory for pointer(structure, char, int and so on), not for class
阅读全文
sizeof
摘要:http://dev.csdn.net/Develop/article/42/42446.shtm http://www.blogjava.net/majianan/archive/2006/08/20/64664.html
阅读全文
编程题目
摘要:1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n long fn(long n) { long temp=0; int i,flag=1; if(n 0); exit(1); } for(i=1;i 0); exit(1); } whi...
阅读全文
堆栈
摘要:问题: 请对堆栈这种数据结构做出评论。用c 语言来实现一个堆栈,你可以选用链表或动态数组来实现你的堆栈;并请对你的决定做出解释。你为堆栈设计的程序接口必须完备、规范、和易于使用。分析:这到题考察三个方面:1)对基本的抽象数据结构(堆栈)和底层数据结构(链表和动态数组)的理解和掌握程度;2)用编程语言实现和处理这些数据结构的能力;3)为一组相关例程设计一套规范化程序接口的能力。解答:堆栈是一种重要的...
阅读全文
深入理解Linux的系统调用
摘要:一、 什么是系统调用 在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。系统调用是用户程序和内核交互的接口。 二、 系统调用的作用 系统调用在Linux系统中发挥着巨大的作用,如果没有系统调用,那么应用程序就失去了内...
阅读全文
c语言之循环链表
摘要:http://student.zjzk.cn/course_ware/data_structure/web/xianxingbiao/xianxingbiao2.3.2.htm注意: 判断空链表的条件是head==head->next;注意: ①循环链表中没有NULL指针。涉及遍历操作时,其终止条件就不再是像非循环链表那样判别p或p->next是否为空,而是判别它们是否等于某一指定...
阅读全文
c语言之双向链表
摘要:typedef struct node{int data; /*数据域*/struct node *llink,*rlink; /*链域,*llink是左链域指针,*rlink是右链域指针*/}JD;插入 对于双向循环链表,我们现在可以随意地在某已知结点p前或者p后插入一个新的结点。 假若s,p,q是连续三个结点的指针,若我们要在p前插入一个新结点r,则只需把s的右链域指针指向r,r的左链域指...
阅读全文
c语言之单链表
摘要:1.c语言对一个整数链表的类型声明:typedef struct elementT{ int data; struct elementT *next;}element;2.头指针的修改int Insert(element **head){ element *Newelem; Newelem = (element *)malloc(sizeof(element)); if(!Newel...
阅读全文
C Runtime Library
摘要:运行期库是一个广泛的概念,可以认为是一套系统级的函数库,这些函数要么在后台被使用,比如进行程序的初始化和清理操作,要么是我们会直接调用到的,比如内存管理中的malloc、数学计算中的sqrt等,所谓运行期,就是在程序运行时使用,离开了它,我们的程序寸步难行. 在Windows平台下,C Runtime Library 的情况如下: ...
阅读全文
c经典题
摘要:出处 :http://www.ad0.cn/netfetch/article.asp?id=534 http://www.ad0.cn/netfetch/article.asp?id=583
阅读全文
C语言之static静态变量
摘要:1. static 变量静态变量的类型 说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量。 例如外部变量虽属于静态 存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。2. 静态局部变量静态局部变量属于静态存储方式,它具有以下特点:(1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍...
阅读全文
c语言之指针
摘要:文章出处:http://www.linux8.net/viewnews_2847.html1、指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子:例一: ...
阅读全文
c语言只预处理
摘要:所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。 C语言提供了多种预处理功能,如宏定义、文件包含、 条件编译等。 宏定义 在C语言源程序中允许用一个标识符来表示一个字符串, 称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换, 这称为“宏代换”或“宏展开”。 在C语言中,“宏”分...
阅读全文
嵌入式程序员应知道的几个基本问题
摘要:文章出处: http://linux.ccidnet.com/art/310/20061025/931699_1.html我把作者的文章精简了一下,着重点放在几个问题的答案上:) 预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)...
阅读全文
memset ,memcpy 和strcpy 区别
摘要:strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。memcpy 原型:extern void *memcpy(v...
阅读全文
1
浙公网安备 33010602011771号