摘要: 首先,我们应该明确的是在C++中初始化不是赋值,因为初始化是必要的,如果读取了未初始化的值将会导致不明确的行为。初始化指创建变量并且给它赋初值,而赋值则是擦除对象的当前值并用新值代替。C++支持两种初始化变量的方式:复制初始化和直接初始化: int ival(1000);//直接初始化是将初始化式放在括号里 int ival=1000;//复制初始化是用等号(=)那么这两种方式有什么区别呢?我们可以这样认为,对于内置类型来说,复制初始化和直接初始化几乎没有差别,对于类类型来讲,当创建类类型对象时,初始化的复制形式和直接形式有所不同:直接初始化直接调用与实参匹配的构造函数,复制初始化总是调用复制 阅读全文
posted @ 2014-03-11 12:36 拦云 阅读(4001) 评论(0) 推荐(1) 编辑
摘要: 1/*0-1背包递归*/ 2#include 2 #include 3 using namespace std; 4 5 int w[]={1,3,4,5};//物品重量数组 6 int v[]={2,30,44,20};//物品价值数组 7 int contain=5;//背包容量 8 int y[4]={-1,-1,-1,-1};//解向量,y[i]=1表示选取物品,y[i]=0表示不选取物品 9 10 int f(int n,int contain)11 {12 if(n==0 || contain==0){//当物品数量为0,或者背包容量为0时,最优解为013 ... 阅读全文
posted @ 2014-03-10 23:45 拦云 阅读(2504) 评论(0) 推荐(1) 编辑
摘要: 引用只是对象的另一个名字,通过在变量名前面添加"&”符号来定义,而指针保存的是另一个对象的地址,它们两都提供了间接访问所服务变量的途径。但是它们的差别还是挺大的: 先从它们的值说起,一个有效的指针值通常具有三种面孔,一是保存一个特定对象的地址,而且一般是用取地址符号“&”把该特定对象的地址拿出来赋给指针;二是0值,此时表明它不指向任何对象,尽管任一个int型变量的值可能为0,但是直接把int型变量赋给指针是非法的,不过,如果是在编译时可以获得0值的const变量则指针对它网开一面,也就是说,int s=0;int *p=s 是不行的,但是 const int s=0; 阅读全文
posted @ 2014-03-10 23:29 拦云 阅读(2170) 评论(0) 推荐(0) 编辑
摘要: 因为本人已经接触了C和C++两年多了,虽然真正用它们的机会很少,但是基本的语法还是相对熟悉的。半年前的课程设计用了PHP,所以当初我也只是现学先用,学得很粗糙,现在,跟一个同学合作搞一个比赛的项目,再次接触PHP才发现,我对PHP的很多概念还是不清楚。故借此机会,总结一下PHP的一些知识点。注意,以下总结是针对已有其他语言背景而想学PHP的读者。参考书 >1.在字符串的连接上,若是在双引号中,变量名称将被变量值所替代,若是在单引号中,变量名称或者任何其他文本都将不经修改而发送给浏览器。因为PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascrip 阅读全文
posted @ 2013-12-07 11:05 拦云 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: GNU/Linux操作系统架构备注:IPC进程间通。IPC(Inter-Process Communication)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道, 通过提供可信任的用户名和口令,连接双方 可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问 下面简要的分析linux内核的各个组件1.GNU系统库,即glibc库,它是一个实现标准C库函数的可移植的库,包括上半个系统的调用。应用程序与GNU C库连接来访问Linux内核和一些常用函数。GNU C和ANSI C函数库的区别:libc是Linux下的ANSI... 阅读全文
posted @ 2013-07-11 10:15 拦云 阅读(1141) 评论(0) 推荐(0) 编辑
摘要: 下面是个关于递归调用简单但是很能说明问题的例子:[cpp]view plaincopy/*递归例子*/#include<stdio.h>voidup_and_down(int);intmain(void){up_and_down(1);return0;}voidup_and_down(intn){printf("Level%d:nlocation%p/n",n,&n);/*1*/if(n<4)up_and_down(n+1);printf("Level%d:nlocation%p/n",n,&n);/*2*/}输出结果L 阅读全文
posted @ 2013-05-20 20:34 拦云 阅读(574) 评论(0) 推荐(0) 编辑
摘要: C库函数中字符串处理函数集合bcmp原型:extern int bcmp(const void *s1, const void *s2, int n);用法:#include 功能:比较字符串s1和s2的前n个字节是否相等说明:如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。bcopy原型:extern void bcopy(const void *src, void *dest, int n);用法:#include 功能:将字符串src的前n个字节复制到dest中 说明:bcopy不检查字符串中的空字节NULL,函数没有返回值。bzero 原型:extern v.. 阅读全文
posted @ 2013-01-22 08:54 拦云 阅读(249) 评论(0) 推荐(0) 编辑
摘要: vc2008快捷键 转载自cpp_programer最终编辑cpp_programer最近开始用VC2008了,感觉很陌生,为了更快地编程,需要快速熟悉开发环境,下面为网上整理的快捷键--------------------------------------个人感觉比较常用------------------------------------------------------------------------CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目Ctrl+J : 列出成员智能感知 Shift+Delete整行删除,并且将这一行 阅读全文
posted @ 2013-01-21 20:22 拦云 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 用惯了6.0的同学初次使用VC2008经常出现的问题#include<iostream>void main(){ cout<<"Hello World!"<<endl;}这样一段代码输入VC2008里 编译出现错误 说error C2065: “cout”: 未声明的标识符error C2065: “endl”: 未声明的标识符怎么回事啊改成#include<iostream.h>void main(){ cout<<"Hello Wrold!"<<endl;}后 在VC6里面运行得 阅读全文
posted @ 2013-01-21 12:28 拦云 阅读(1284) 评论(0) 推荐(0) 编辑
摘要: 许多同学可能在学习C++的时候,都会感到一定的困惑,继承到底是怎样分配空间的,多态到底是如何完成的,许许多多的问题,必须挖掘到C++底层处理机制,才能搞明白。有许多C程序员也并不认同C++,他们认为C++庞大又迟缓,其更重要的原因是,他们认为“C++是在你的背后做事情”。的确,C++编译器背着程序员做了太多的事情,所以让很多不了解其底层机制的人感到困惑。想成为一个优秀的程序员,那么这样的困惑就不应该存在,只有了解了底层实现模型,才能写出效率较高的代码,自信心也比较高。 我们先从一个简单但有趣的例子谈起。有如下的4个类:class X {};class Y : public virtual X 阅读全文
posted @ 2012-12-30 18:09 拦云 阅读(1755) 评论(0) 推荐(0) 编辑