C/C++
bizhu12
这个作者很懒,什么都没留下…
展开
-
指针以及内存分配
1. 指针很灵活,这使得指针很难管理,在定义指针时,将在栈中开辟一块内存存放指针的地址(栈内的内存由系统分配和释放),指针的地址内存只是存放指针的地址,不存放指针指向的数据,值得注意的是,定义指针时指针会随机指向一块内存,如int *p;p会指向一块不为空的内存,相当危险,例如执行判断if(!p){ printf("p为空");};这里不会输出"p为空";所以在定义时想让指针p为空,则要int原创 2011-06-08 17:04:00 · 18101 阅读 · 2 评论 -
C/C++ 文件读写操作总结
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于BCB库的文件操作;转载 2011-10-07 14:33:05 · 28518 阅读 · 0 评论 -
C/C++ 各种计时函数总结
C/C++ 各种计时函数总结转载 2011-10-10 15:37:36 · 931 阅读 · 0 评论 -
算法优化,如何从120秒到0.5秒
朋友曾经给我推荐了一个有关代码优化的pdf文档《让你的软件飞起来》,看完之后,感受颇深。为了推广其,同时也为了自己加深印象,故将其总结为word文档。下面就是其的详细内容总结,希望能于己于人都有所帮助。 速度取决于算法同样的事情,方法不一样,效果也不一样。比如,汽车引擎,可以让你的速度超越马车,却无法超越音速;涡轮引擎,可以轻松 超越音障,却无法飞出地球;如果有火箭发动机,就可以到达火转载 2011-10-25 10:51:04 · 11800 阅读 · 0 评论 -
C/C++内存与运行时深入研究
C/C++内存与运行时深入研究 -----------------------------------------------------------------------------------(一)整数符号的陷阱 (二)浮点数的本质 (三)堆栈的内存管理结构 (四)符号解析 (五)对齐和总线错误 (六)函数指针 (七)虚函数的实现机理 (八)引用的实现机理转载 2011-10-28 10:23:02 · 996 阅读 · 0 评论 -
C++11 中值得关注的几大变化(详解)
源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里。所以,我就不翻译了,我在这里仅对文中提到的这些变化“追问为什么要引入这些变化”的一个探讨,只有知道为了什么,用在什么地方,我们才能真正学到这个知识。而以此你可以更深入地了解这些变化。所以,本文转载 2011-11-19 11:49:55 · 813 阅读 · 0 评论 -
C++学习的临时笔记
1.在为指针分配内存的时候,可以这样分配,int *p = (int*)malloc(5*int);这样就可以分配出5块的int类型的内存,可以通过p[i](02.在定义指针时只分配了存放指针地址的内存,没有分配存放的值的内存,所以不能int *p = 4;这样是错误的,因为没有存放4这个值得内存, 可以有一下两种定义, (1) int a = 6; int *p = &a; /原创 2011-11-19 01:06:00 · 976 阅读 · 0 评论 -
const详解
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:常变量: const 类型说明符 变量名常引用: const 类型说明符 &引用名常对象: 类名 const 对象名常成员函数: 类名::fun(形参)转载 2011-11-02 13:16:05 · 880 阅读 · 0 评论 -
显式转换类型函数详解
在C++中显式转换类型的操作函数有static_cast,reinterpret_cast,const_cast和dynamic_cast,前面三个是在编译时实现,后面一个dynamic_cast是在执行时实现,这些操作函数都是模板函数,static_cast(expression)reinterpret_cast(expression)const_cast(expression)原创 2011-11-06 13:04:32 · 243 阅读 · 1 评论 -
内联函数--提高C/C++程序执行效率
内联函数使用的是inline标识函数,是一种利用适度的空间膨胀来换取较高的执行速度,内联函数与预处理宏有相同的地方,编译器会在调用内联函数的地方将函数展开直接将内联函数代码嵌入调用的地方,这样解决了使用预处理宏函数的缺陷. #define max(a,b) ((a) > (b) ? (a) : (b)) //要是这也做变量要加括号,不然后果很难知道原创 2011-11-12 14:43:47 · 3555 阅读 · 0 评论 -
整理C++内存管理相关链接
C++内存管理变革(1)C++内存管理变革(2):最袖珍的垃圾回收器C++内存管理变革(3):另类内存管理C++内存管理变革(4): boost::object_pool C++内存管理变革(6):通用型垃圾回收器 - ScopeAlloc原创 2011-10-02 17:02:44 · 1380 阅读 · 0 评论 -
C/C++中几个宏的简单总结
作者:magictong环境:VS2005 XPSP3有人视宏为洪水猛兽,甚至要求完全从C/C++中摒弃,有人则认为宏为至尊宝典,在逻辑代码中都大量使用。个人认为这是个仁者见仁智者见智的问题,摒弃就没必要了,看看宏在MFC和ATL中的一些经典应用,你会发现如果不使用宏转载 2011-10-02 01:10:20 · 682 阅读 · 0 评论 -
标准库string类型学习
#include "stdafx.h"#include //#include //注释的两个头文件在这里都不行//#include #include using namespace std;//使用string类int _tmain(int argc, _TCHAR* argv[]){ //初始化 int n = 4; string st原创 2011-06-23 19:44:00 · 827 阅读 · 0 评论 -
获取文件名
#include "stdafx.h"#include #include using namespace std;struct fileName{ char Fname[512]; fileName *pNext;}; //用于保存文件名fileName *pHead = NULL;void FindPathFile(char *path)原创 2011-06-22 22:51:00 · 2492 阅读 · 0 评论 -
C++的引用
C++的引用具备指针的所有功能,不过引用与指针的区别在于引用在定义时必须要初始化,因为引用对象不许为空,若对象可以为空,则定义指针变量,int i=9;int &s = i;定义引用指向了i;其实引用相当于我们所说的"别名",是所指向的变量的别名,引用与变量共用一个内存地址如原创 2011-08-07 14:15:25 · 3616 阅读 · 3 评论 -
C++的内存管理
这篇文章是我在学习高质量C++/C编程指南中的第7章"内存管理"后的一篇笔记,之前我也写过相关的文章指针以及内存分配,但我感觉那篇还不是很好,这篇我很把它更完善一些一.内存的常见分配方式 1. 从静态区分配,一般是全局变量和static类型变量 2.从栈区分配内存原创 2011-08-08 15:01:15 · 30077 阅读 · 75 评论 -
const的常见用法
const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量 下面我就介绍一下几种常见的用法1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val = 10; //Val = 20; //错误,不可被修改原创 2011-08-09 15:45:56 · 29775 阅读 · 7 评论 -
vector的成员函数解析
vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或原创 2011-09-13 01:23:28 · 56121 阅读 · 4 评论 -
CString赋值给char数组
1.传给未分配内存的const char* (LPCTSTR)指针.CString cstr(asdd);const char* ch = (LPCTSTR)cstr;ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.2.传给未分配内存转载 2011-09-18 01:15:55 · 13355 阅读 · 1 评论 -
deque成员函数的解析
deque(双端队列)deque同样是一种顺序容器,里面的元素的一样按照严格的线性序列排序这种容器与其他容器相比,能够更有效的在两端执行插入和删除,deque在第一个元素能够执行插入,这是个优势,deque的缺点在与它的内存空间不是连续的,是有多块内存使用链表结构链接在一原创 2011-09-17 15:22:02 · 6421 阅读 · 0 评论 -
sizeof()的计算方法,你知道多少?
#include using namespace std;class Test{public: void fun() { bool b;// 1 short s; // 2 long l; //4 }private: int v; //4 lo原创 2011-08-20 13:16:11 · 214 阅读 · 0 评论 -
explicit--防止类实例化时隐式转换
今天随便的看了一下Effective C++,结果有个问题我以前根本没注意,可能很多人也没注意这个问题看一下代码#include using namespace std; class A{public: A(int i = 0 ) { val = i; } int val; }; void Dosome原创 2011-11-12 17:32:17 · 988 阅读 · 0 评论