求职学习
sail2011
NULL
展开
-
文字常量区与栈区分析
由于网上介绍内存分配的比较简单 自己顺便写了一份由于刚接触C 若有问题 请指出 欢迎讨论编译环境为VS2005 编译为C文件。。。首先看下下面这段: int main(){ char *name = "fengkewei"; char name1[] = "fengkewei"; char *name2 = "fengke转载 2013-06-09 08:24:26 · 790 阅读 · 0 评论 -
求两个数或多个数的最大公约数算法及其实现
求两个数或多个数的最大公约数算法及其实现一,两个数的最大公约数:1、欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,转载 2013-06-08 10:05:34 · 1803 阅读 · 0 评论 -
子数组的和的最大值
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。参考网址:http://codercareer.blogspot.com/2原创 2012-10-16 11:01:04 · 1205 阅读 · 0 评论 -
二分查找
//Data为要查找的数组,x为待查找数据值,beg为查找范围起始,last为查找范围终止//非递归法int BiSearch(int data[], const int x, int beg, int last){ int mid;//中间位置 if (beg > last) return -1; while(beg <= last) { mid = (beg + last)原创 2013-10-09 10:00:46 · 648 阅读 · 0 评论 -
形参和实参的区别
形参和实参的区别形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束转载 2013-08-08 23:28:03 · 847 阅读 · 0 评论 -
unsigned int 与 int 之和
面试题:unsigned int a = 6;int b = -20;int c;(a+b>6)?(c=1):(c=0)问:c=? 看下面这段:K & R A.6.5 Arithmetic ConversionsFirst, if either operand is long double, the other is converted to long do转载 2013-06-19 10:49:01 · 902 阅读 · 0 评论 -
字符数组,字符指针,Sizeof总结
字符数组,字符指针,Sizeof总结1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写 "abc",那么编译器帮你存储的是"abc\0"2."abc"是常量吗?答案是有时是,有时不是。不是常量的情况:"abc"作为字符数组初始值的时候就不是,如 char str[] = "abc";因为定义的是一个字符数组,所以就相当于定义了一些空间来存转载 2013-06-09 09:07:24 · 688 阅读 · 0 评论 -
堆和栈的区别
堆Heap:是大家的共有空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆是操作系统对进程进行初始化的时候分配,运行过程中也可以向系统申请额外的堆,但是用完了要记得还给操作系统,不然就是内存泄露。堆里面放的一般是静态数据,如static数据、字符串常量等,资源加载后一般也放在堆里面。一个进程的所有线程共有这些堆,所以对堆操作要考虑同步和互斥的问题。程序里面编译后的数转载 2013-06-08 18:33:09 · 623 阅读 · 0 评论 -
TCP协议的三次握手
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(ur原创 2013-06-08 17:39:31 · 758 阅读 · 0 评论 -
引用和取地址的区别
1)引用在赋值=的左边,而取地址在赋值的右边,比如int a=3;int &b=a; //引用int *p=&a; //取地址2)和类型在一起的是引用,和变量在一起的是取址。 举例同样如上,还有下例:int function(int &i){} //引用int原创 2013-06-18 10:35:00 · 1142 阅读 · 0 评论 -
整理:静态链接库与动态链接库
一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态转载 2013-06-08 16:01:03 · 807 阅读 · 0 评论 -
void及void指针含义的深刻解析
void及void指针含义的深刻解析分类: Linux内核游记2011-03-14 20:07 11992人阅读 评论(12) 收藏 举报编译器语言parametersp2pfunction目录(?)[-]综述void的含义void的使用总结void的含义void即“无类型”,void *则为“无类型指针”,可以指向任转载 2013-06-13 15:08:18 · 681 阅读 · 1 评论 -
typedef char * pStr的问题和const char*, char const*, char*const的区别
下面的代码中编译器会报一个错误,你知道是哪个语句错了吗?typedef char * pStr;char string[4] = "abc";const char *p1 = string;const pStr p2 = string;p1++;p2++; 是p2++出错了。这个问题提醒我们:typedef和#define不同,它不是简单的文本替换。上述代码中c转载 2013-06-14 10:57:31 · 5143 阅读 · 2 评论 -
【整理】把二元查找树转变成排序的双向链表
整理自:1. July @CSDN http://blog.csdn.net/v_JULY_v/article/details/62784842.剑指offer by 何海涛 http://zhedahht.blog.163.com/blog/static/254111742007127104759245/修改 by sail2011@新浪微薄:http://weibo.c原创 2012-10-14 12:29:57 · 3053 阅读 · 0 评论