变量声明和定义的区别
摘要:我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益)变量的声明有两种情况:1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing declaration)”,从广义的角度来讲声明中包含着定
阅读全文
posted @
2013-09-06 17:14
猿人谷
阅读(477)
推荐(1) 编辑
用标准C编写COM(一)
摘要:cdllbufferstruct编译器微软目录(?)[-]简介COM对象和虚表GUIDQueryInterfaceAddRef and ReleaseIClassFactory对象打包到DLL中CC包含文件定义文件DEF安装DLL和注册对象C实例程序C实例程序修改代码接下来是什么 转载:http://blog.csdn.net/wangqiulin123456/article/details/8092358原文:http://www.codeproject.com/Articles/13601/COM-in-plain-C 如何在不使用MFC、ATL、WTL或其他框架下使用标准C来创...
阅读全文
posted @
2013-08-14 21:31
猿人谷
阅读(687)
推荐(0) 编辑
转载:50个C/C++源代码网站
摘要:来源:http://www.cnblogs.com/feisky/archive/2010/03/05/1679160.htmlC/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c /c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。添加:http://www.boost.org/1、http://snippets.dzone.com/tag/c/--数以千计的有用的C语言源代码片段2、http://www.hotscripts
阅读全文
posted @
2013-08-14 14:21
猿人谷
阅读(743)
推荐(1) 编辑
C语言指针5分钟教程
摘要:指针、引用和取值什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量。在这份教程里“引用”表示计算机内存地址。从指针指向的内 存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始 化指针。本文会对上述所有指针类型进行探讨。根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,*表示这里声明了一个指针。其它情况用到*表示指针的取值。&是地址操作符,用来引用一个内存地址。通过在变量名字前使用&操作符,我们可以得到
阅读全文
posted @
2013-08-10 21:27
猿人谷
阅读(714)
推荐(1) 编辑
六种排序的C++实现
摘要:classSortNum{public:SortNum();virtual~SortNum();voidexchange(int&b,int&c);//交换数据voidlistout(inta[],intn);//列出所有voidselectSort(inta[],intn);//选择voidbublbleSort(inta[],intn);//冒泡voidinsertSort(inta[],intn);//插入voidbaseSort(inta[],intn);//基数voidquickSort(inta[],intn,intleft,intright);//快速voidMe
阅读全文
posted @
2013-08-10 15:34
猿人谷
阅读(727)
推荐(0) 编辑
十个顶级的C语言资源助你成为优秀的程序员
摘要:转载:http://web.itivy.com/article-364-1.html人们通常认为计算机编程很烦,但是有些人却从中发现了乐趣。每一个程序员不得不跟随计算机编程语言的潮流。大多数的人以C语言作为开始编程的语言,因为C语言是在编写操作系统和应用程序中用的最为普遍的语言。如果你正在读这篇文章,很有可能你已经是一个编程人员或者想成为一名编程人员。幸运的是,这里正是你要找的地方,在这篇文章中我收集了一些C编程的网址或者教程可以帮助你成为一名好的C语言编程人员。这些网址或教程会帮助你学习C语言的基本知识和高级编程技巧。1.C Programming Notes这些笔记来自华盛顿大学实验学院关
阅读全文
posted @
2013-08-05 21:10
猿人谷
阅读(956)
推荐(1) 编辑
转载:ofstream和ifstream详细用法
摘要:ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h
阅读全文
posted @
2013-08-04 14:10
猿人谷
阅读(501)
推荐(0) 编辑
转载:fstream和ifstream详细用法
摘要:文件 I/O 在C++中比烤蛋糕简单多了。在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,
阅读全文
posted @
2013-08-04 14:05
猿人谷
阅读(2557)
推荐(0) 编辑
转载:看c++ primer 学习心得
摘要:学习C++ Primer时遇到的问题及解释chenm91感觉:l 啰嗦有时会掩盖主题:这本书确实有些啰嗦,比如在讲函数重载的时候,讲了太长一大段(有两节是打了*号的,看还是不看?),而在TC++PL中则精炼很多。这让人有些很难接受,很多时候好像让人有些找不到纲了。l 举例偏难有时也会掩盖主题:这本书使用的例子“文本查询系统”有些偏难。在讲述C++的一些关键性概念的时候,应该将读者的注意力都集中在这些概念上,可 是通过这样一个难懂的例子来讲述,我觉得无疑是将问题复杂化了,尤其是在讲述面向对象和STL相关概念时,我无法接受,尽管确实通过这个例子显示了C++ 的NB之处。而在TC++PL中,不管讲什
阅读全文
posted @
2013-07-25 10:34
猿人谷
阅读(780)
推荐(1) 编辑
转载:大端和小端
摘要:大端和小端 嵌入式开发者应该对大端和小端很熟悉。在内存单元中数据是以字节为存储单位的,对于多字节数据,在小端模式中,低字节数据存放在低地址单元,而在大端模式 中,低字节数据存放在高地址单元。比如一个定义一个short型的变量a,赋值为1,由于short型数据占2字节。在小端模式中,其存放方式为0X4000 000000010X4001 00000000而在大端模式中,其存放方式为0X4000 000000000X4001 00000001若需用程序验证系统是大端模式还是小端模式(一般我们用的x86结构的都是小端模式),有两种方法1.利用联合体的性质 因为联合体中的成员是共享内存的,并且数据是从
阅读全文
posted @
2013-07-18 20:27
猿人谷
阅读(263)
推荐(0) 编辑
枚举类型
摘要:转自:http://blog.csdn.net/lbsjs/article/details/178896在程序设计中,有时会用到由若干个有限数据元素组成的集合,如一周内的星期一到星期日七个数据元素组成的集合,由三种颜色红、黄、绿组成的集合,一个工作 班组内十个职工组成的集合等等,程序中某个变量取值仅限于集合中的元素。此时,可将这些数据集合定义为枚举类型。因此,枚举类型是某类数据可能取值的集 合,如一周内星期可能取值的集合为: { Sun,Mon,Tue,Wed,Thu,Fri,Sat} 该集合可定义为描述星期的枚举类型,该枚举类型共有七个元素,因而用枚举类型定义的枚举变量只能取集合中的某一..
阅读全文
posted @
2013-07-12 16:43
猿人谷
阅读(541)
推荐(0) 编辑
C++类的静态成员详细讲解
摘要:在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象。希望阅读本文可以使读者对类的静态成员变量和成员函数有更为深刻的认识。第一个例子,通过类名调用静态成员函数和非静态成员函数class Point{public: void
阅读全文
posted @
2013-07-10 13:44
猿人谷
阅读(316)
推荐(1) 编辑
C/C++需要注意的11个要点
摘要:下面的这些要点是对所有的C++程序员都适用的。我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的。如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的地方,甚至是对一些高级的C++程序员也是如此。 这里的要点不仅仅是解释怎样写出更好的代码,更多的是展现出语言规则里面的东西。很显然,它们对C++程序员来说是永久的好资料。我相信这一篇文章会使你收获不小。 首先,我把一些由不同层次的C++程序员经常问的问题归到一起。我惊奇的发现有很多是有经验的程序员都还没意识到 .h 符号是否还应该出现在标准头文件中。要点1: <iostream.h>
阅读全文
posted @
2013-05-19 20:04
猿人谷
阅读(454)
推荐(1) 编辑
C++强大的背后
摘要:来源:http://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup, 该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, GP),后来为泛型而设计的模版,被发现及证明是图灵完备的,因此使C++亦可
阅读全文
posted @
2013-04-28 15:24
猿人谷
阅读(246)
推荐(0) 编辑
memcpy和memmove的区别
摘要:memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count);它们都是从src所指向的内存中复制count个字节到dst所指内存中,并返回dst的值。当源内存区域和目标内存区域无交叉时,两者的结果是一样的,但如果有交叉呢?先看下图:图的上半部分为源内存区域在目标内存区域右边,下半部分为源内存区域在目标区域左边,源内存区域和目标内存区域都
阅读全文
posted @
2013-04-26 20:52
猿人谷
阅读(679)
推荐(0) 编辑
代码段、数据段、堆栈段、数据段
摘要:1、高位地址:栈(存放着局部变量和函数参数等数据),向下生长 (可读可写可执行)2、 堆(给动态分配内存是使用),向上生长 (可读可写可执行)3、 数据段(保存全局数据和静态数据) (可读可写不可执行)4、地位地址:代码段(保存代码) (可读可执行不可写)代码段就是存储程序文本的,所以有时候也叫做文本段,指令指针中的指令就是从这里取得。这个段一般是可以被共享的,比如你在Linux开了2个Vi来编辑文本,那么一般来说这两个Vi是共享一个代码段的,但是数据段不同(这点有点类似C++中类的不同对象共享相同成员函数)。 数据段是存储数据用的,还可以分成初始化为非零的数据区,BSS,和堆(Heap)三个
阅读全文
posted @
2013-04-26 20:16
猿人谷
阅读(902)
推荐(0) 编辑
重载、覆盖、隐藏
摘要:成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。示例8-2-1 中,函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)被Derived::g(void)覆
阅读全文
posted @
2013-04-26 20:07
猿人谷
阅读(290)
推荐(0) 编辑
(转)继承的相关问题
摘要:析构函数如果一个类想被别人继承,通常析构函数要声明为虚函数,否则,如下代码就会出现未定义情况。Base* p=new Derived();delete p;这句话反过来说,就是如果你不打算让别人派生你的类,就不要把析构函数声明为虚函数,当然对方是菜鸟的话,你也没办法。极端特殊情况下,只要使用者保证不会多态的析构(像上面的例子),也可以通融。继承与访问权限基类的private成员,只能由基类或者基类的友元访问,也就是说既不能被类外部的调用者(客户)访问,也不能被子类访问。或许是提供一种相对宽松的选择,protected成员允许派生类访问,但是拒绝外部调 用者的访问。<<C++Prim
阅读全文
posted @
2013-04-19 16:29
猿人谷
阅读(311)
推荐(0) 编辑
(转)静态成员函数小结
摘要:类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。 其定义方式与全局变量相同。举例如下: xxx.h文件 class
阅读全文
posted @
2013-04-18 17:12
猿人谷
阅读(250)
推荐(0) 编辑
C++中派生类对基类成员的访问形式
摘要:来源:http://www.cppblog.com/woaidongmao/archive/2010/07/01/119024.htmlC++中派生类对基类成员的访问形式主要有以下两种:1、内部访问:由派生类中新增成员对基类继承来的成员的访问。2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。1、私有继承的访问规则当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生类的其它成员可以直接访问它们,但是在类的外部通过派生类的对象无法访问。基类的priv
阅读全文
posted @
2013-04-17 13:46
猿人谷
阅读(1635)
推荐(0) 编辑