C/C++
zlfavor
菜鸟也要飞...
展开
-
[转]经典C/C++算法
二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] > val) { r = m; m = (m+l)/2;原创 2009-07-13 12:21:00 · 444 阅读 · 0 评论 -
C/C++经典排序算法
排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。 我将按照算法的复杂度,从简单到难来分析算法。 第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为转载 2009-10-23 19:34:00 · 4655 阅读 · 5 评论 -
CString,BSTR,LPCTSTR之间联系和区别
CString ,BSTR ,LPCTSTR之间关系和区别CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typedef const char转载 2009-09-25 14:45:00 · 792 阅读 · 0 评论 -
char *与string之间的相互转换
从char*转换成string :char cTest[] = "test"; string str = cTest;从string转换成char* :char *cTest = strdup(str.c_str()); 需要注意的就是用完strdup后要记得释放,free(cTest);因为strdup是从堆中分配的内存,危险哦...原创 2009-07-09 14:57:00 · 610 阅读 · 0 评论 -
C++虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这转载 2009-09-02 16:53:00 · 799 阅读 · 4 评论 -
结构体字节对齐问题
#include struct a { char no[10]; int p; long int pp; unsigned int ppp; char x; float y; double h; }xy; void main() { printf("struct a: %d /n",sizeof(struct a)); // 不是等于 35 吗??? 为什么等于 40 啦? } 结构体转载 2009-08-09 22:42:00 · 2963 阅读 · 0 评论 -
itoa函数及atoi函数
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:# include # include void main (void){int num = 100;char str[25];itoa(num, str, 10);printf("The number num is %d and转载 2009-08-03 11:19:00 · 563 阅读 · 0 评论 -
C++ 类访问控制public/private/protected探讨
原帖如下 1 #include 2 using namespace std; 3 4 class A{ 5 public: 6 A(int i_,int j_) 7 { 8 i=i_; 9 j=j_;10 }11 void disp(A &a)12 {13 cout14 }15 16 priva转载 2009-07-31 11:04:00 · 2800 阅读 · 1 评论 -
C语言字符串 数字转换函数大全
atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strtod(将字符串转换成浮点数)strtol(将字符串转换成长整型数)strtoul(将字符串转换成无符号长整型数)toascii(将整型数转换成合法的ASCII 码字符)toupper(将小写字母转换成大写字母)tolower(将大写字母转换成小写字母) atof(将字符串转换成浮原创 2009-07-27 17:32:00 · 1801 阅读 · 0 评论 -
C打开文件的追加参数
fopen(打开文件) 相关函数 open,fclose 表头文件 #include 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。原创 2009-07-27 17:18:00 · 1077 阅读 · 0 评论 -
static与全局与局部变量的区别
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能原创 2009-07-23 13:43:00 · 736 阅读 · 0 评论 -
char *遇到的问题
char *会被优先解释为string,所以不可能通过以下这种方式得到元素地址。也可以理解成cout的定义中有一个是以char*为参数的。char a[3][4] = {{a,a,a,a},{a,a,a,a},{a,a,a,a}}; int count = 0; for(int i=0; i!=3; i++) { for(int j=0; j!原创 2009-07-21 16:35:00 · 511 阅读 · 0 评论 -
内存区划分,分配
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放转载 2009-07-19 22:43:00 · 836 阅读 · 0 评论 -
WinMain(windows程序的运行原理以及VC++的实现过程)
WinMain(windows程序的运行原理以及VC++的实现过程)操作系统以消息机制把输入设备的变化传递给我们的应用程序,操作系统所扮演的角色是神经末梢 APP 系统调用API OS 输出 输入HARDWARE 操作系统之所以成为操作系统是因为它能够控制硬件的设备,能够控制声卡发出声转载 2009-12-04 17:34:00 · 1497 阅读 · 0 评论