摘要: 第12章 类1. 构造函数类的构造函数一般使用一个初始化列表来初始化对象的数据成员。2. 成员函数在类内部声明成员函数是必须的,而定义成员函数则是可选的。在类内部定义的函数默认为inline。而在类外部定义的成员函数必须指明它们是在类的作用域内。成员函数有一个附加的隐含实参,将函数绑定到调用函数的对象。这个隐含的实参其实是this指针。对像的this指针并不是对象本身的组成部分,它不占对象的内存空间,在每次非static成员函数调用对象的时候,this指针作为隐藏的第一个参数由编译器传递给对象。将关键字const 加在形参表之后,就可以将成员函数声明为常量:如: double avg_pric 阅读全文
posted @ 2012-02-29 13:15 Mr.Rico 阅读(569) 评论(0) 推荐(0)
摘要: 第一章 快速入门1. endl是一个操纵符,它可以刷新与设备相关联的缓冲区。第二章 变量和基本类型C++中的保留字1. 初始化和赋值是不同的。 C++中进行初始化的方法包括复制初始化和直接初始化。 在内置类型上,这两种方式基本上没有什么差别。 但是,在自定义的类类型上,还是有很大差别的,有时候只能使用直接初始化。2. 定义与声明 定义为变量分配空间,声明向程序表明变量的类型和名字。定义也是声明:当我们定义变量时,我们就声明了它的类型和名字。 比如: extern int i; 这儿是声明但是没有定义i,这儿告诉程序变量i定义在了程序的其他地方。 int i; 声明并且定义了i,这样一个操作之后 阅读全文
posted @ 2012-02-29 12:55 Mr.Rico 阅读(749) 评论(0) 推荐(0)
摘要: 类别[随笔分类]linux学习 阅读全文
posted @ 2012-02-28 13:53 Mr.Rico 阅读(534) 评论(0) 推荐(0)
摘要: 1. const 在C和C++中的区别 C++中的const正常情况下是看成编译期的常量,编译器并不为const分配空间,只是在编译的时候将期值保存在名字表中,并在适当的时候折合在代码中. 所以在C++中const修饰的量可以用在数组的定义中。 而在C中,const是一个不能被改变的普通变量,既然是变量,就要占用存储空间,所以编译器不知道编译时的值.而且,数组定义时的下标必须为常量. 在C语言中: const int size; 这个语句是正确的,因为它被C编译器看作一个声明,指明在别的地方分配存储空间.但在C++中这样写是不正确的.C++中const默认是内... 阅读全文
posted @ 2012-02-27 21:56 Mr.Rico 阅读(12375) 评论(0) 推荐(1)
摘要: 2011年4月9日10:09:19c语言中的浮点数在内存中的表示(VC++编译器中):char:1个字节short:2个字节int:4字节long:4字节float:4字节(单精度)double:8字节(双精度) 参考:http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html 无论是单精度还是双精度在存储中都分为三个部分: 符号位(Sign) : 0代表正,1代表为负 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储 尾数部分(Mantissa):尾数部分 其中float的存储... 阅读全文
posted @ 2012-02-27 20:39 Mr.Rico 阅读(19193) 评论(8) 推荐(2)
摘要: 2011年4月9日17:42:57C中的字符串数组与字符串指针的区别 从上面的截图,我们可以看到字符数组和字符串的差别。他们的类型是不同的,比如上面的代码中,filename的类型是char[12],而pname的类型是char*,&filename的结果是数组指针,图中显示的是char[12]*。还可以发现,对于pname和p虽然是两个不同的指针,但是他们都指向同一个地址,这也是编译器投机取巧的地方,因为他们都是指向"fangzhen"这个字符串,所以编译器就只存储一次。还有&"fangzhen"的用法也是可以的。2011年4月10日1 阅读全文
posted @ 2012-02-27 20:06 Mr.Rico 阅读(3694) 评论(2) 推荐(0)
摘要: 《C 语言深度解剖》这本书是一本“解开程序员面试笔试的秘密”的好书。作者陈正冲老师提出“以含金量勇敢挑战国内外同类书籍”,确实,这本书中的知识点都是一些在面试中常见的考点,并且很多都是我们平常不注意的点,对于我们深入理解C语言确实很有帮助。第1章关键字1.register虽然寄存器的速度非常快,但是使用register修饰符也有些限制的:register变量必须是能被CPU寄存器所接受的类型。意味着register变量必须是一个单个的值,并且其长度应小于或等于整型的长度。而且register变量可能不存放在内存中,所以不能用取址运算符“&”来获取register变量的地址。2.stat 阅读全文
posted @ 2012-02-27 13:04 Mr.Rico 阅读(2622) 评论(0) 推荐(2)
摘要: 第1章 C语言基础1. 概念C是很小的内核语言,并包含极少的硬件相关元素,可以说具有相当高的可移植性。比方说,C语言不提供有关文件操作或动态内存管理等语句。事实上,甚至不直接提供控制台输出和输入语句。C语言的做法是是使用扩充的标准C链接库,为各式各样的编程目的提供各种所需的函数。因为C是专门作为“系统编程”而开发的,它目前主要的用途之一就是编写”嵌入式系统程序“,这一点不会让我们感到惊讶。许多开发者把C当作可移植的,结构化的高级程序语言,以编写诸如文字处理器、数据库以及图形应用程序。第7章 函数一个源文件就是一个翻译单元。前面说过#include指令只是将文件的内容插入到#include指令. 阅读全文
posted @ 2012-02-27 09:55 Mr.Rico 阅读(2320) 评论(0) 推荐(0)
摘要: 第1章 C:穿越时空的迷雾1. C语言史前阶段B 语言通过省略一些特性(如过程嵌套和一些循环结构),对BCPL语言做了 简化,并发扬了"引用数组元素相当于对指针加偏移量的引用"这个想法。B语言同时保持了BCPL语言无类型这个特点,它仅有的操作数就是机器字。 Thomposoon发明了++和--操作符,并把它加入到PDP-7的B编译器中。2. C语言的早期体验除了类型系统之外,C语言的许多其他特性是为了方便编译器设计者而建立的。主要包括(1)数组下标从0而不是从1开始。因为偏移量的概念在编译器设计者的心中已经是根深蒂固。(2)C语言的基本数据类型直接与底层硬件相对应.例如,不 阅读全文
posted @ 2012-02-26 23:03 Mr.Rico 阅读(1094) 评论(0) 推荐(0)
摘要: 第2章 基本概念1. 程序的执行过程经历几个阶段:首先是载入到内存中。在宿主环境中(具有操作系统的环境),这个任务由操作系统完成。那些不是存储在堆栈中的尚未初始化的变量将在这个时候得到初始值。在独立的环境中,程序的载入必须由手工安排,也可能是通过把可执行代码置入只读内存(ROM)中来完成。然后程序执行便开始。在宿主环境中,通常一个小型的启动程序与程序链接在一起,它负责处理一系列日常事务,如收集命令行参数以便使程序能够访问它们。接着,便调用main函数。现在,便开始执行程序代码。在绝大多数机器中,程序将使用一个运行时堆栈(stack),它用于存储函数的局部变量和返回地址。程序同时也可以使用静态( 阅读全文
posted @ 2012-02-26 22:35 Mr.Rico 阅读(385) 评论(0) 推荐(0)
摘要: 《你必须知道的495个C语言问题》这本书中列出了495个C语言中的问题,这些问题都比较都代表性,这是真实的有人提出的问题,然后作者给出了解答。这个有对应的网站:http://c-faq-chn.sourceforge.net/ 2.12 怎样向数据文件读写结构体 使用fwrite()编写结构相对简单 fwrite(&some_struct,sizeof somestruct,1,fp); 对应的fread函数可以再把它读出来,此处fwrite受到一个结构的指针并把这个结构的内存映像作为字节流写入文件。sizeof操作符计算出结构占用的字节数。 但是这样用内存映像写出的数据文件却是不能够 阅读全文
posted @ 2012-02-26 22:30 Mr.Rico 阅读(1095) 评论(0) 推荐(0)
摘要: 《C程序设计-现代方法》这本C语言书是一本不错的C语言的书。其中的讲解挺有条理,并且每章后面的释疑部分真的解答了我的很多疑问。第2章 C语言基本概念1. 在某些C语言的书中,main函数的结尾使用的是exit(0),而不是return 0,二者是否一样? 当出现在main函数中时,这两种语句是完全等价的:二者都终止程序执行,并且向操作系统返回0值.2. float类型的名字是由何而来的? float是floating-point的缩写形式.有些语言中称为real类型第3章 格式化输入/输出1. 转换说明%i也可以用于读写整数,%i和%d之间的区别? 在printf格式串中使用时,二者没有区别. 阅读全文
posted @ 2012-02-26 20:56 Mr.Rico 阅读(738) 评论(0) 推荐(0)
摘要: 这是阅读 《C/C++代码精髓》的记录。这本书其实更偏向于讲解C++中的相关知识。也介绍了很多C与C++的区别联系。第1章 更好的C1.简介 C++是一个混合语言,它将面向对象特征与系统编程语言混合在一起。 C语言的兼容性是C++设计的一个主要的目标,1989年Bjarne在ANSI C++委员会的主题演讲中提到,C++是“工程上的妥协”,并且必须使它“越接近C越好,但不能过度”。 C++是多范例语言:像C和Pascal一样支持过程编程,像Ada支持数据抽象和通用性(模板),像其他面向对象一样,支持继承和多态。2. 更好的CC++比C更安全,更富于表达,所以可以将它作为更好的C使用:类型安全链 阅读全文
posted @ 2012-02-26 20:21 Mr.Rico 阅读(2513) 评论(0) 推荐(1)
摘要: 约瑟夫环问题:有编号从1到N的N个人坐成一圈报数,报到M的人出局,下一位再从1开始, 如此持续,直止剩下一位为止,报告此人的编号X。输入N,M,求出X。对于这个问题,有很多解法。包括一些基本的解法和一些优化的算法。基本解法一:这个方法比较直观,就是使用循环列表来模拟约瑟夫环。但是复杂度比较高,为O(m*n) 具体的代码如下:View Code /**=====================================================================================**Filename:c069_2.c**Description:**Ver. 阅读全文
posted @ 2012-02-26 12:49 Mr.Rico 阅读(377) 评论(0) 推荐(0)
摘要: 这是《C Primer Plus(第5版)》的一些阅读笔记,以后可以经常看看,复习一下C语言。第一章 概览1. 目标代码、可执行文件和库2. 编译器环境(1)Unix系统上所用的编译器是cc(2)Linux系统上使用gcc编译器(3)window上一般是提供的集成编程环境IDE(4)IBM PC的DOS编译器第二章 C语言概述1. 为什么不内置输入输出语句第三章 数据和C1. C语言中的数据类型 2. 数据类型的大小具体在我的linux和window平台上的结果如下:可以看到出了long double,其余的大小都是一样的。 第8章 输入输出1. 输入输出重定向第9章 函数第12 章 存储类. 阅读全文
posted @ 2012-02-23 20:14 Mr.Rico 阅读(248) 评论(0) 推荐(0)