C++学习笔记
文章平均质量分 87
君子美玉
君子美玉
展开
-
浮点数的一些认识
<br />浮点数的一些认识<br /><br />浮点数包括float和double两种类型,float占32位,double占64位。其二进制存储格式遵循IEEE754标准。以float为例:<br /> <br /> 符号位:正数为0,负数为1<br /> 以float型数据123.456为例,分析其二进制存储格式:<br /> 首先将十进制数123.456转换为二进制数为:1111011. 01110100101111001 <br /> (其中0.原创 2011-05-18 23:05:00 · 1054 阅读 · 0 评论 -
Log4cpp介绍及使用
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslog服务器中。1、Log4cpp简介 Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。原创 2012-03-05 14:33:30 · 57246 阅读 · 1 评论 -
C++开源库,欢迎补充。
C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)转载 2011-12-08 20:08:35 · 1145 阅读 · 0 评论 -
学校BBS上C版总结的月经贴,感觉很不错
所谓“月经题”就是那些几乎隔段时间就会被问到的常见问题,所以觉得有必要总结出来 一些常见的放到置地文章中! 1、首当其冲的就应该是类似对:i+++i 这种类似表达式求值的问题! 其有很多变种,但是都可以归为一类,这类无聊问题的最大特点就是【变量在一个表达 式的运算中改变了自己】,以i+++i为例: i+++i按照操作符优先级划分,应该写为i++ + i,如果在E原创 2011-12-06 23:24:14 · 1181 阅读 · 0 评论 -
奇怪的const_cast
const_cast 用法:const_cast (expression) 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 一、常量指针被转化成非常量指针,并且仍然指向原来的对象; 二、常量引用被转换成非常量引用,并且仍然指向原来的原创 2011-11-17 23:31:05 · 965 阅读 · 1 评论 -
C++中二维数组new小结
1. A (*ga)[n] = new A[m][n]; ... delete []ga; 缺点:n必须是已知 优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用) 2. A** ga = new A*[m]; for(int i =原创 2011-09-24 10:29:00 · 970 阅读 · 0 评论 -
const总结大全,不断更新,面试必备
一.const类型的变量在声明的时候一定要进行初始化,否则会报错。二.在全局作用域中定义非const对象,它在整个程序中都可以访问例如://file1.ccint counter;//file2.ccextern int counter;++cou原创 2011-08-15 19:41:45 · 1873 阅读 · 1 评论 -
避免使用宏
概述: 宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论: 在C++中,几乎从不需要使用宏。 可以用const或者enum定义易于理解的常量,用原创 2011-09-20 18:00:35 · 796 阅读 · 0 评论 -
sizeof的奇妙
在论坛上看了个帖子 int i=2; int j=sizeof(++i); printf("%d",i);就是问输出是多少,答案是2,为什么呢?sizeof 操作符给出其操作数需要占用的空间大小, 它是在编译时就可确定的, 所以其操作数即使是一个表达式, 也不原创 2011-09-16 22:34:54 · 906 阅读 · 6 评论 -
智能指针
一.智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。 智能指针(smart pointer)的一种通用实现技术是使用引原创 2011-09-14 22:40:44 · 834 阅读 · 0 评论 -
一道很有意思的面试题
求较小的值,不能用 比较运算符 if-else ?: while for 内嵌汇编 递归 第三方函数int Min(int a, int b){ //write code here}我给的回复是#include // 要求写的函数int M原创 2011-08-17 03:51:09 · 1869 阅读 · 6 评论 -
C++的一些细节
1.C++中,将负数赋值给unsigned是完全合法的。例如,将-1赋值给unsigned char,那么结果是255.2.C++中,double的精度和计算速度都要超过float,long double则需要承担额外的运行代价。3.std:ou/原创 2011-04-15 21:08:00 · 781 阅读 · 0 评论 -
cerr和cout的区分
cerr与cout的主要区分就是,cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。 例如下面程序编译后生成test.exe // test.cpp #include int main() { cout << "hell转载 2011-08-17 03:31:40 · 1094 阅读 · 0 评论 -
delete与delete[]的区别
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。 关于 new[] 和 delete[],其中又分原创 2011-08-15 19:55:35 · 668 阅读 · 0 评论 -
C++中的堆与栈
<br />C++中的堆与栈<br /><br />1 基本概念<br />也不知道是什么原因,很多人总是把堆和栈混合一起,在写程序时,总是经常脱口而出地说堆栈。网上的一些资料说堆栈的叫法是有历史原因的,至于具体是什么历史原因,这不是本文所要讨论的问题。<br />堆:在数据结构中,堆是一种满足“堆性质”(至于什么是堆性质可以查阅任何一本数据结构的书)的数据结构。然而,通常我们所指的堆都是指二叉堆,即一种使用数组来模拟完全二叉树的结构。当然,也存在其它形式的堆,包括斐波拉契堆、二项堆、杨氏表等,想获原创 2011-05-18 22:23:00 · 924 阅读 · 0 评论 -
结构体对齐的几个问题浅析
1.关于结构体对齐许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的起始地址的值是某个数k的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。这种强制的要求一来简化了处理器与内存之间传输系统的设计,二来可以提升读取数据的速度。比如这么一种处理器,它每次读写内存的时候都从某个8倍数的地址开始,一次读出或写入8个字原创 2012-08-30 23:09:48 · 1690 阅读 · 0 评论