C/C++
文章平均质量分 74
灬鬼谷灬
这个作者很懒,什么都没留下…
展开
-
C语言笔记
1、C语言动态内存 char *pStr = (char*)malloc(sizeof(char)*10); memset(pStr, 0, 10*sizeof(char)); malloc和memset一般是一起使用的,malloc分配的内存是不进行初始化的,如果不用memset初始化在进行右值操作时很有可能出现错误。 若申请了两段内存空间pStr1和pStr2,当pStr = p原创 2016-01-27 12:35:43 · 338 阅读 · 0 评论 -
switch局部变量
在使用switch的时候竟然出现了编译问题,查了资料后发现: 1、C++中每个case部分没有独立的作用域,只能自己加大括号来实现。 2、局部变量 j,作用域是所在的大括号内。 3、静态变量的声明和定义的作用是在静态域,与是否执行到没有关系。定义变量并不存在执行动作。 4、变量的初始化会被执行到,所以编译时@@处的代码会提示跳过了变量的初始化操作。 #include using na原创 2016-03-08 12:36:15 · 489 阅读 · 0 评论 -
C++笔记(1)
学习C++已经很长时间,最近感觉在细节上对于c++了解还不是很深刻,于是打算读一遍《C++ Primer》,并对一些地方做一些记录 1、endl 的作用: endl是C++标准库中的操控器(Manipulator),主要作用是换行+刷新缓冲区。原创 2016-02-29 20:25:13 · 239 阅读 · 0 评论 -
C++ Lambda表达式
C++11 新特性:Lambda 表达式 或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个。这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的。简而言之,Lambda 表达式就是用于创建匿名函数的。GCC 4.5.x 和 Microsoft Visual Studio 早已提供了对 lambda 表达式的支持。转载 2016-05-27 10:03:51 · 313 阅读 · 0 评论 -
C++输入输出重定向
这个对经常在OJ上做题的童鞋们很有用。OJ基本都是用标准输入输出(USACO除外)。但如果你在调试的时候也都是从控制台输入,那就太浪费宝贵的时间了。我们可以重定向标准输入,调试的时候从文件读,提交时从标准输入读。 在C语言中,方法比较简单。使用函数freopen(): freopen("data.in","r",stdin); freopen("data.out","w",stdou转载 2016-05-23 09:38:49 · 5579 阅读 · 0 评论 -
深入理解虚函数表
在深入研究虚函数表之前,我们先思考几个问题: 1、虚函数表存储在什么地方 2、虚函数表中的内容是什么时候确定的 3、虚函数表的指针什么时候赋值 在windows系统下,虚函数表存储在只读数据段(.rdata),也就是说虚函数表在编译阶段就已经形成了,虚函数表指针是在构造函数中赋值的。 相关解释参考 C++虚函数表详细解释及实例分析 但是我还是想更加深入的探索一下虚函数表的实现机制:原创 2016-06-11 11:34:16 · 766 阅读 · 0 评论 -
new和malloc
我们知道,使用malloc/calloc等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即是检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单的把这一招应用到new上,那就不一定正确了。我经常看到类似这样的代码: int* p = new int[SIZE]; if(p==0) //检查p是否空指针转载 2016-01-28 16:38:39 · 260 阅读 · 0 评论 -
C++笔记(2)
1、类的构造顺序,父类--->成员--->本身构造函数 类的析构与构造相反,本身析构函数------->成员------------>父类原创 2016-05-12 14:14:01 · 240 阅读 · 0 评论