
C/C++--General/Comparison
HappyJandun
在C/C plus plus的道路上慢慢沉淀
展开
-
const 关键字的总结
先看完,回头整理下发到这。原文:http://blog.youkuaiyun.com/Eric_Jo/article/details/4138548相关博文:http://bbs.youkuaiyun.com/topics/310007610原创 2013-11-01 17:42:00 · 1094 阅读 · 0 评论 -
C++11新特性
C++11improvemnts over C++03http://www.cplusplus.com/articles/EzywvCM9/原创 2014-05-26 16:20:12 · 665 阅读 · 0 评论 -
C99标准的新特性
原文:Features of C99http://www.cplusplus.com/articles/iz3hAqkS/翻译 2014-05-21 16:41:16 · 1767 阅读 · 0 评论 -
C语言表达式和表达式的值
今天突然发现如果能很好的理解表达式原创 2014-05-14 19:11:55 · 13933 阅读 · 3 评论 -
C语言知识点考题
C语言的谜题和逗号表达式1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?#include #include int main() { while(1) { fprintf(stdout,"hello-std-out"); fprintf(stderr,"hello-std-err");转载 2014-05-14 23:26:34 · 1040 阅读 · 0 评论 -
C++ 运算符优先级表
截图来源:http://www.cplusplus.com/doc/tutorial/operators/原创 2014-05-14 20:18:23 · 1089 阅读 · 0 评论 -
函数指针
1.简单的函数指针的应用形式1:返回类型(*函数名)(参数表) [cpp] view plaincopychar (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第转载 2014-04-14 23:37:27 · 999 阅读 · 1 评论 -
sizeof总结
整理中原创 2013-11-19 17:00:02 · 1292 阅读 · 0 评论 -
#pragam once 和 #ifndef 预编译头
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #e转载 2013-12-07 10:48:46 · 1311 阅读 · 0 评论 -
菜鸟所不知道的:类的构造函数、析构函数与赋值函数
构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如 A(void); // 缺省的无参数构造函数转载 2013-11-14 20:21:37 · 882 阅读 · 0 评论 -
Snailevil's C List
None now.原创 2014-05-26 15:14:22 · 754 阅读 · 0 评论 -
Snailevil's C++ List
1、关于访问控制符的总结2、构造和原创 2014-05-26 15:16:09 · 590 阅读 · 0 评论 -
函数返回值:引用类型和非引用类型
1,什么时候返回引用是正确的?而什么时候返回const引用是正确的? 返回指向函数调用前就已经存在的对象的引用是正确的。当不希望返回的对象被修改时,返回const引用是正确的。原创 2014-04-26 18:18:58 · 1807 阅读 · 0 评论 -
类的const、static、const static成员初始化位置及其他需要注意的问题
类的const、static、const static成员初始化位置及其他需要注意的问题,在这篇代码中都有体现。 笔者水平有限,在一个技术点上停留的时间也有限。所以博客的水平也有限,欢迎大家指正!但是,笔者会持续用自己最新的认知修改完善博客,这是提高自己技术水平的关键所在,也是写博客的主要目的,欢迎大家监督! 笔者声明:对网络已有资源的摘抄原创 2015-06-23 16:01:04 · 1150 阅读 · 0 评论 -
C++ 虚函数若干问题
等会回来整理。理解虚函数( virtual function )的几个关键点:1.理解早绑定(early binding)、晚绑定(late binding)。所谓early binding:On compile time,就能明确一个函数调用是对哪个对象的哪个成员函数进行的,即编译时就晓得了确定的函数地址;所谓late binding:On compile time,对函数(虚函原创 2013-11-24 16:19:26 · 1277 阅读 · 1 评论 -
C++之父FAQ阅读笔记
原文:http://www.stroustrup.com/bs_faq2.html阅读次数:2未全理解的问题: - Is there a “placement delete”? - Can I stop people deriving from my class? 笔者水平有限,在一个技术点上停留的时间也有限。所以博客的水平也有限,欢迎大家指正!但是,笔者会持续用自己最新的认知修改完善博客原创 2015-03-24 18:27:51 · 671 阅读 · 0 评论 -
C++ 强制类型转换若干问题
C++四种强制类型转换的总结 这个蛮难的,专业资料上的涉及的概念太多,看不懂。弄懂它需要时日。C风格的类型转换Type b=(TYPE)a;C++的四种类型转换操作符const_cast:去constness属性或volatinaleness属性。static_cast:静态类型转换。如int转换成char。dynamic_cast:动态类型原创 2014-11-27 14:00:37 · 3207 阅读 · 0 评论 -
关于C++静态成员变量
C++静态成员变量是用static修饰的成员变量,不属于对象的一部分,而是类测一部分,因此可以在没有实例化任何对象的时候使用静态成员变量。但是必须初始化它。 由于静态变量只能被初始化一次,所以初始化成员变量不要放在如下地方:1.类的构造函数(构造函数可能多次被调用);2.头文件中(头文件可能被包含入多个地方,也可能被执行多次)。应该放在应用程序中,类以外的任何地方初始化,例如:在原创 2014-03-11 19:25:27 · 714 阅读 · 0 评论 -
宏定义的技巧、宏函数和内联函数的比较
整理中用内联取代宏:1.内联函数在运行时可调试,而宏定义不可以;2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。文章(一)内联函数与宏定义 在C中,常用预处理语句#define原创 2013-11-14 16:06:12 · 2159 阅读 · 0 评论 -
bool,int,float,指针变量与零值比较的if语句
这是程序员面试的一道常见题,也是个C++基础问题。若只在大学里看过几本基础的编程入门书,看见这道题可能会觉得奇怪,不就是和0比较吗,直接拿出来比就是了,其实非也。下文引自google搜索结果,出处不详,高手可以无视,菜菜留下,记得做好笔记。 首先给个提示:题目中要求的是零值比较,而非与0进行比较,在C++里“零值”的范围可就大了,可以是0, 0.0 , FALSE或者“空指针”。转载 2013-11-12 14:46:01 · 2226 阅读 · 0 评论 -
feof使用注意
前言有時候在使用檔案讀寫時,會遇到要判斷檔案結尾的需求,而C/C++語言在中有提供一個feof()的函式幫助我們判斷,但是在使用時,請先了解它的使用時機。發生狀況->多讀一次?下面的寫法模式會發生多讀取的case,而這個原因在於使用feof的時機不對。FILE* pf; while(!feof(pf)){ //fread 讀取 //資料處理转载 2013-11-08 13:17:35 · 932 阅读 · 0 评论 -
C/C++常用头文件及函数汇总
C#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //对应各种运算符的宏#include //定义各种数据类型最值的常量#include //定义本地化C函数#include //定义数学转载 2013-11-04 17:51:46 · 1244 阅读 · 0 评论 -
内存泄露
简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。 以发生的方式来分类,内存泄漏可以分为4类: 1、常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 2、偶发性内存泄漏原创 2013-03-25 13:34:11 · 720 阅读 · 0 评论 -
C++ 标准头文件与C头文件区别与联系
摘自其他作者的博客,外加自己的整理。1、用前者的话,在编译时系统会在用户自定义的库文件里去找,如果找不到再到系统库文件里找。后者采用相反顺序。2、一般一个带“.h” 扩展名的库文件,比如iostream.h,是延续C语言的,为了兼容C。在新标准的库中都有一个不带".h"扩展名 的相对应的 标准库头文件,所谓标准库头文件就是从理论上讲,所有平台的编译器都会支持的头文件。区别原创 2013-03-24 14:38:11 · 2264 阅读 · 0 评论 -
C语言学习之内存管理函数malloc()和free()
原文:http://blog.youkuaiyun.com/sdwuyulunbi/article/details/6643481 在C语言的学习中,对内存管理这部分知识的掌握尤其重要。 malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并转载 2013-04-04 21:32:13 · 1131 阅读 · 0 评论 -
C++标准转换运算符static_cast
原文:http://www.cnblogs.com/ider/archive/2011/07/31/cpp_cast_operator_part4.htmlstatic_cast (expression) 虽然const_cast是用来去除变量的const限定,但是static_cast却不是用来去除变量的static引用。其实这是很容转载 2013-04-03 19:18:47 · 1095 阅读 · 0 评论 -
C++中的空类,编译器默认可以产生哪些成员函数
一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写 class Empty{}; 就相当于: class Empty { public: Empty(); Empty(const Empty&); ~Empty();原创 2013-04-02 19:16:46 · 1180 阅读 · 0 评论 -
#pragma once与条件编译
定义#pragma once是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。它是编译器相关的,就是说即使这个编译系统上有效,但在其他编译系统也不一定可以,不过现在基本上已经是每个编译器都有这个杂注了。#define是C/C++语言中的宏定义,#ifndef,#endif是C/C++语言中的编译。所以在所有支持C++语言的编译器上都是有原创 2013-04-01 19:15:34 · 1066 阅读 · 0 评论 -
C++静态类型总结[百度文库文档]
前言 本文只是本人对C++中关于静态类型的一个总结,如错误之处,请大家帮我改正。我分两个方面来总结,第一方面主要是相对于面向过程而言,即在这方面不涉及到类,第二方面相对于面向对象而言,主要说明static在类中的作用。 一、在面向过程设计中的static关键字 1、静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静转载 2013-04-02 10:46:31 · 888 阅读 · 0 评论 -
stdafx.h
原理还不懂,暂留,见百度百科:http://baike.baidu.com/view/1344257.htm原创 2013-04-01 19:22:42 · 758 阅读 · 0 评论 -
字符串问题续
问题一:#include using namespace std; char* pReturnErrorP(){ char* p="I Love China!"; //改为char p[]="I Love China!";结果不变。 return p;}int main(){ char* str=pReturnErrorP(); cout<<*st原创 2013-04-11 10:14:41 · 878 阅读 · 0 评论 -
CString 操作指南、 CString_string_char的综合比较
转载自VC驿站的两个帖子:http://www.cctry.com/forum.php?mod=viewthread&tid=2340 http://www.cctry.com/forum.php?mod=viewthread&tid=28884 通过阅读本文你可以学习如何有效地使用转载 2013-05-02 18:49:10 · 1012 阅读 · 0 评论 -
C C++ Java 区别性记忆总结【持续更新中】
在原文的基础上有选择性的复制,并添加自己知道为提及的内容。原文:http://hi.baidu.com/baiyw920/item/1e8031f74854fac2a835a2d60.在C++有bool类型,C中没有。1.在C++中,for语句中可以出现for(int i=0;i2.在C++中定义struct,union和enum类型的变量时,关键字struct,uni原创 2013-08-21 16:15:27 · 1095 阅读 · 0 评论 -
C++中指针和引用的区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数转载 2013-11-19 16:31:39 · 1064 阅读 · 0 评论 -
C++ 全局变量、局部变量、静态全局变量、静态局部变量的区别
C++ 变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。 从作用域看 全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。 静态局部变量具有转载 2013-11-04 16:40:20 · 985 阅读 · 0 评论 -
多继承的概念和优缺点
解析:实际生活中,一些事物往往会拥有两个或两个以上事物的属性,为了解决这个问题,C++引入了多重继承的概念,C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承。举个例子:人(Person)可以派生出作者(Author)和程序员(Programmer),然而程序员作者同时拥有作家和程序员的两个属性,即既能编程又能写作。使用多重继承的例子程序如下: #in转载 2013-11-03 22:20:30 · 10510 阅读 · 0 评论 -
main函数的两个问题
1、带参数的main函数的一种标准形式 记住以后写不带参数的main函数这样写: int mai(void){ return 1;} 带参数的main函数形式如下: int main(int argc, char *argv[]) ;argc 参数个数,包括可执行文件名,argv是指针数组,该数组的元素是指向字符串的字符指针,argv[0]原创 2013-04-02 19:08:37 · 1265 阅读 · 0 评论 -
总结:指针、引用、const
怕之后忘了,先占位。Doing原创 2013-11-17 20:52:45 · 823 阅读 · 0 评论 -
near far关键字
整合自各网帖near指针和far指针?在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。far指针的长度是32位,含有一个16位的基地址和16位的偏移量,将基地址乘以16后再与偏移量相加,(所以实际上far指原创 2013-03-30 12:58:03 · 1229 阅读 · 0 评论 -
C++ 虚基类
#includeclass A{ public: void fn(){cout<<"A:fn()"<<endl; }};class B1: virtual public A // 虚拟继承{ public: void fn(){cout<<"B1:fn()"<<endl; }};class B2: virtual public A // 虚拟继承{转载 2013-09-03 22:52:21 · 808 阅读 · 0 评论