C++ 的引用 指针和引用的区别
摘要:引用(reference)是c++的初学者比较容易迷惑的概念。下面我们比较详细地讨论引用。 一、引用的概念引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。例如: Point pt1(10,10);Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。需要特别强调的是引用并不产生对象的副本,仅仅是对象的...
阅读全文
posted @
2009-05-09 14:33
陈广强
阅读(563)
推荐(0)
C++笔试题(2)
摘要:1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有变...
阅读全文
posted @
2009-03-01 12:28
陈广强
阅读(561)
推荐(0)
C++笔试题(1)
摘要:单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下: struct linka { int dat...
阅读全文
posted @
2009-03-01 12:25
陈广强
阅读(424)
推荐(0)
void及void指针深层探索 (转)
摘要:1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,...
阅读全文
posted @
2009-02-18 12:17
陈广强
阅读(216)
推荐(0)
一个指针的用法
摘要:DM9000_REGS为一个结构体,存放DM9000的寄存器 DM9000_REGS *g_pDM9000; //定义一个该结构体类型的指针 BYTE *pAddress; g_pDM9000=(volatile DM9000_REGS*)pAddress; //pAddress和g_pDM9000的类型不一样,不能直接赋值,(volat...
阅读全文
posted @
2009-02-05 14:01
陈广强
阅读(209)
推荐(0)
小议static(转自http://blog.csdn.net/hustli/archive/2003/08/03/19384.aspx)
摘要:1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个...
阅读全文
posted @
2009-02-02 20:44
陈广强
阅读(184)
推荐(0)
const的思考(转自http://blog.csdn.net/hustli/archive/2003/06/30/19342.aspx)
摘要:1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如: ...
阅读全文
posted @
2009-02-02 20:24
陈广强
阅读(179)
推荐(0)
堆和栈
摘要:预备知识: 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和...
阅读全文
posted @
2009-02-02 19:42
陈广强
阅读(338)
推荐(0)
成为嵌入式程序员应知道的10个基本问题
摘要:C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字...
阅读全文
posted @
2009-02-01 20:21
陈广强
阅读(292)
推荐(0)
宏定义
摘要:#define 标识符 字符串 说明: 1、 宏名一般习惯用大写字母表示,以便与变量名区别,但并非规定; 2、 宏定义只是做简单的置换,不做正确性检查,预编译是不作任何语法检查; 3、 宏定义不是C语句,不必在行末加分号,如果加了会连分号一起进行置换; 4、 宏名的有效范围为定义命令之后到本源文件结束,通常放在文件的开头,在此文件范围内有效; 5、 可以用#undef命令终止宏定义的作用...
阅读全文
posted @
2009-02-01 20:16
陈广强
阅读(2722)
推荐(0)