2014年2月20日
摘要: 1、在C语言中,没有字符串类型,因此使用char指针表示字符串。2、那么问题来了,使用char* 表示字符串,到哪里是结尾呢?因此需要一个特殊的字符作为哨兵,类似迭代器中的end(),这个哨兵就是'\0',注意不是字符0.3、对于文本字符串,编译器会自动添加\0。4、对于字符数组的赋值,如果不使用文本字符串,需要用户在尾部添加字符\0。对于其他类型的数组,没有\0的概念。5、对于char指针,C语言提供了一系列方法,如strlen,strcmp。这些方法有个特点,都是假定最后一个字符为\0。因此对于char指针,我们要保证最后一个字符是\0。6、考虑sizeof,对于指针,取值 阅读全文
posted @ 2014-02-20 21:39 Andy Niu 阅读(3260) 评论(0) 推荐(1) 编辑
摘要: 1、整个流程:需求分析-->概要设计-->详细设计-->编码实现-->单元测试-->集成测试-->系统测试-->验收测试。2、单元测试覆盖率包括:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖。 阅读全文
posted @ 2014-02-20 21:09 Andy Niu 阅读(158) 评论(0) 推荐(0) 编辑
摘要: ftp文件传输协议21telnet远程登录协议23smtp简单邮件传输协议25http超文本传输协议80pop3邮局协议第3版本1101、t=transfer,传输的意思。2、stmp是发邮件协议,包括两部分,客户端到自身服务器,服务器转发到目标服务器。3、pop3是接收邮件协议,通过客户端到服务器上把邮件取下来,需要用户名和密码。 阅读全文
posted @ 2014-02-20 21:05 Andy Niu 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 1、注意这里说的是,与零值比较,而不是与零比较。2、对于int类型,与零值比较就是: if(var == 0) //零值3、对于bool类型,零值表示false,任何非零值表示true,因此使用: if(!var) //零值4、对于float,计算机无法表示准确的浮点数,比如大家都知道:1.0/3 * 3 !=1,因此需要判断变量是否大于一个很小的负数并且小于一个很小的正数。 const float f = 0.000001; if(var>=-f && var<f) //零值5、对于指针,零值就是null,因此应该与null比较。 if(var ==null) / 阅读全文
posted @ 2014-02-20 20:49 Andy Niu 阅读(915) 评论(0) 推荐(0) 编辑
摘要: 1、编码的关键是思路,思路不对,不可能编出正确的代码。考虑下面两个关于单向链表的题目:2、单向链表,如何判断是否构成环形? a、思路一:常规做法,建个集合,遍历单向链表,集合没有包含元素,添加进去集合,集合包含元素直接返回true,跳出遍历,返回false。 b、思路二:使用快慢指针,建立两个节点,n1从head开始,n2从head->next开始,while(n1 && n2),n1每次走一步,n2每次走两步。如果n2先走到null,说明没有环。如果n1==n2,说明有环,n2又从后面追上来。3、对于单向链表,查找倒数第K个节点。 a、思路一:先计算节点个数,倒数第K个 阅读全文
posted @ 2014-02-20 20:29 Andy Niu 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 1、我们知道程序的入口是main方法,那么在执行main方法之前,需要做些什么准备工作呢?2、main方法执行之前,必须要把non-local static对象构造完成。static对象有:全局对象,命名空间中的对象,类的static对象(从封装的角度看,类也是一个命名空间),方法内的static对象,其中方法中的static对象是local static对象,其他的是non-local static对象,这些对象分配在全局区,程序结束才释放内存。3、local static对象直到方法被调用的时候,才进行初始化,而且只初始化一次。non-local static必须在main方法执行之前,进 阅读全文
posted @ 2014-02-20 20:05 Andy Niu 阅读(4565) 评论(0) 推荐(0) 编辑
摘要: 1、复制控制包括:copy构造,copy赋值,析构方法。2、没有声明任何构造方法,编译器自动生成一个default构造方法。对于copy构造,copy赋值和析构方法,没有声明,编译器会自动合成一个。3、合成的copy构造,做的事情是:逐个字段初始化,将新对象初始化为原对象的一个副本。所谓的逐个成员初始化,只是指实例字段,不包括static字段,因为static字段是共享的。如果字段是值类型,直接赋值。如果字段是类类型,递归调用copy构造方法。有个情况很例外,一般情况下,不能复制数组,但是对于类中的数组,合成copy构造将复制数组中的每一个元素。4、合成的copy赋值,做的事情:除了stati 阅读全文
posted @ 2014-02-20 19:28 Andy Niu 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 1、C++类本身没有访问权限的概念,就是class Base。2、类成员的访问权限有:public、protected、private3、类的继承方式有:public、protected、private 阅读全文
posted @ 2014-02-20 18:56 Andy Niu 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 1、相对于C中struct,C++做了很大的扩充。基本上和class 差不多。只有一些细节上的差别。2、对于成员的默认访问权限,class是private,struct是public。需要注意的是,程序中应该明确指出访问权限,不要依赖默认的访问权限。对于其它默认的情况也是一样,尽量明确指出来,这是一个良好的编程习惯,增加代码的可读性。3、对于默认的继承方式,class是private,struct是public。需要注意的是,class可继承class,也可继承struct。struct可继承struct,也可继承class。默认的继承方式取决于子类是struct还是class。和上面一样,这 阅读全文
posted @ 2014-02-20 18:53 Andy Niu 阅读(1971) 评论(0) 推荐(0) 编辑