
C/C++
Tony2251
记录一些思绪和想法
展开
-
再次理解指针和引用
一、先看一段代码: #include using namespace std;void freePtr1(int* p1){ delete p1; p1 = NULL;}void freePtr2(int*& p2){ delete p2; p2 = NULL;} void main(){ int *p1转载 2008-05-26 23:28:00 · 385 阅读 · 0 评论 -
C 应该注意的地方
刚才在CU里面看到一个关于宏的帖子,不解,随查《linux内核情景分析》(其中的一小节),呵呵。 #define DUMP_WRITE(addr,nr) do {memcpy(bufp,addr,nr); buf += nr ;} while(0) 如果如下 #define DUMP_WRITE(addr,nr) memcpy(bufp,addr,nr);原创 2008-10-22 18:04:00 · 502 阅读 · 0 评论 -
一道算法题
如图所示: 设“1”的坐标为(0,0) “7”的坐标为(-1,-1) 编写一个小程序,使程序做到输入坐标(X,Y)之后显示出相应的数字。 最麻烦的方法也是最好想的,不断的循环,进行匹配即可。当x,y很大时,时间复杂是很大的。主要是一圈一圈的转,规律很简单。 这种问题一般有规律,原题位置:http://blog.csdn原创 2008-10-24 19:31:00 · 471 阅读 · 0 评论 -
C语言中可变参数的用法
在C语言中比较常用的可变参数就是printf();函数原型如下: int printf(const char * format,...); 写一个简单的可变参数:#include void va_fun(int i,...);int main(void){ va_fun(100); va_fun(20原创 2008-10-31 14:37:00 · 715 阅读 · 0 评论 -
碰见C语言的几个小问题
最近碰见C语言的几个小问题。1.关于结构体的大小(sizeof)。/*struct assign { char a; int b; char c; }; */ struct assign { char a; char b; int c; }; int i = offset原创 2008-11-03 11:03:00 · 516 阅读 · 0 评论 -
C语言复杂声明解析
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Start reading转载 2008-11-12 09:42:00 · 594 阅读 · 1 评论 -
c/c++/java之间的区别
对比一下这三种语言。 Java类接口继承泛型引用异常(try catch throws)命名空间package/import链接性(天然的动态链接性)C结构体(方法又能够函数指针实现)同左,(可以使用void 类型的指针)可以用结构体原创 2008-12-09 09:39:00 · 603 阅读 · 0 评论 -
C++和java中泛型的区别
泛型主要是提供类型的类型参数,也被称为类型化参数。在C++中使用用模板实现泛型的。 这两种语言之间泛型的区别。 第一,java中泛型只能接受引用类型的,而C++可以接受基本类型的。 第二,在C++模板中,编译器使用提供的参数类型来扩充模板。List和List生成的代码不同,实际上是两个类。而在java 中,编译器只是对参原创 2008-12-09 09:23:00 · 868 阅读 · 0 评论 -
SQLite 体系结构
SQLite体系结构简介 这份文档描述了sqlite数据库的体系结构,这些信息对想理解或者修改内部工作原理的朋友们会很有用。 上图中包含了sqlite的主要的模块以及它们是怎么关联的。下面就简要介绍一下每个模块。 (这份文档描述的是sqlite 3.0版本的,2.8以及以前的大体相似只是细节上有点不同) 接口 大部分sqlite翻译 2009-01-12 12:41:00 · 1941 阅读 · 0 评论