代码改变世界

参数传递 强制类型转换 自动类型转换 临时变量

2012-10-26 16:37 by Ball Cactus, 978 阅读, 0 推荐, 收藏, 编辑
摘要:0 关于参数传递类A, 有一个int的数据成员0.1 test1(int i),若A中有一个operator int()的强制类型转换,可以直接传对象。 A a; test1(a);0.2 test2(A b),若A中有一个A(int i)的构造函数,可以直接将int作为参数 int i = 10; test2(i);//这里自动调用A的构造函数,若传的是A的对象,则调用A的拷贝构造函数。如果传入的实参和形参类型不一致时,如果编译器能找到以上两种转换,则自动转换,否则会报类型不一致错误。1 自动类型转换自动转换发生在不同数据类型的变量混合运算时,由编译系统自动完成。2 强制类... 阅读全文

[转]CString, BSTR, LPCTSTR

2012-10-25 20:15 by Ball Cactus, 496 阅读, 0 推荐, 收藏, 编辑
摘要:CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵)LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了+等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typedef const char * LPCTSTR;VC++中各种字符串的表示法 首先char* 是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。LP的含义是长指针(long pointer)。LPSTR是一个指向以‘\0’结尾的A 阅读全文

[转]ANSI版本和unicode版本

2012-10-25 11:15 by Ball Cactus, 769 阅读, 0 推荐, 收藏, 编辑
摘要:最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美国信息交换标准码),它使用7 bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息 nANSI字符集:ASCII字符集,以及由此派生并兼容的字符集,如:GB2312,正式的名称为MBCS(Multi-Byte Chactacter System,多字节字符系统),通常也称为ANSI字符集。 UNICOD 阅读全文

[转]字符集和编码

2012-10-25 11:10 by Ball Cactus, 151 阅读, 0 推荐, 收藏, 编辑
摘要:随便说说字符集和编码 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思。" 并不是所有简单的问题都很容易回答,就像这个问题一样。于是我答应专门写一篇BLOG来从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起。嗯,也许这样开始比较好…… 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做 阅读全文

续行符、宏定义

2012-10-19 16:54 by Ball Cactus, 245 阅读, 0 推荐, 收藏, 编辑
摘要:续行符、宏定义(#,...)#define CLASS(ID) class ID{ \public: \ID(int) {out < <#ID " constructor\n ";} \~ID() {out < <#ID " destructor\n ";} \};CLASS(Base)CLASS(Derive)//宏定义中#把参数转换成字符串//连续两个双引号(“”“”)编译时合并成一个,char str[20]="123""abc";#define P printf #define D 阅读全文

调试技巧

2012-10-19 15:44 by Ball Cactus, 112 阅读, 0 推荐, 收藏, 编辑
摘要://* printf("%s",str);//*/ 阅读全文

回车换行

2012-10-19 15:41 by Ball Cactus, 410 阅读, 0 推荐, 收藏, 编辑
摘要:回车换行(\r-13,\n-10)提示符:10是换行。13回车,接着输出是覆盖以前输出的字符。1310与10效果相同文件: b方式打开文件,无论读写,10就是10,13就是13 文本方式打开时: win下写:\r写为\r,\n写为\r\n,\r\n写为\r\r\n 读:\r读为\r,\n读为\n,\r\n读为\n win:文件中只有一个\r或只有一个\n时,用记事本打开都显示为小黑块,只有\r\n才显示为换行(在 windows 的记事本中打开 Unix 格式的文件时, 因为文件中没有 ‘r’, 所以整个文件显示为一行,\n为小黑块)Linux:换行用\n,打开win文件时... 阅读全文

C语言文件操作

2012-10-18 16:15 by Ball Cactus, 201 阅读, 0 推荐, 收藏, 编辑
摘要:文件打开方式:r w a r+ w+ a+r只读,fprintf写时返回-1,r+可以写w只写,读不出来 w+可以读出来a不可以读 a+可以//注意文件指针的位置//r+和w+的区别在于当打开的文件不存在时,w+,a+会新建文件,而r+返回空指针//a打开,若不存在,则新建文件详细内容参考文摘 阅读全文

[转]java学习笔记:装箱和拆箱,包装器和缓冲池

2012-09-14 16:52 by Ball Cactus, 193 阅读, 0 推荐, 收藏, 编辑
摘要:转自:http://www.2cto.com/kf/201202/118126.htmljdk1.5以后用Integer举例Integer a = 3; 这是自动装箱int i = new Integer(2); 这是自动拆箱就是基本类型和其对应的包装类型在需要的时候可以互相转换,具体过程由编译器完成比如自动装箱:Integer a=3;其实编译器调用的是static Integer valueOf(int i)这个方法查阅JDK知道,valueOf(int i)返回一个表示指定的int 值的Integer 对象那么就变成这样: Integer a=3; => Integer a=Int 阅读全文

[转]Java深度历险(五)——Java泛型

2012-09-14 16:18 by Ball Cactus, 171 阅读, 0 推荐, 收藏, 编辑
摘要:转自:http://www.infoq.com/cn/articles/cf-java-generics 作者 成富 发布于 2011年3月3日Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。对于泛型概念的引入,开发社区的观点是褒贬不一。 从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明显的错误。而从不 好的地方来说,为了保证与旧有版本.. 阅读全文