一级棒(Eachfun)
一级棒 - 读书笔记 - C++ Primer
RSS订阅
  指针和数组之间是什么关系呢?书中曰“密切相关”。其实,那简真就是同一回事嘛。用到指针的时候,你未必会用到数组;但是只要你用到数组,你就必要然用到指针(即使你不知道)。
  正是因为指针可以用加或减运算来移动它所指的位置,而且每加一或减一正好移动到相邻一个同类型的变量(不管这个变量占内存是多少),那么我有意将一堆同类型的变量放在一起,拿一个指针指向它们中的第一个,再记住它们的个数,这就成了数组。
  数组用一组方括号来解引用其中的某个成员,这也只是指...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 07-07 00:55
  指针的初始化与赋值:指针是一个变量,它可以被赋值,也可以被求值。指针可以接受的值只有以下几种:
  1、编译时可求值的0值常量。(必须是0,其实就是NULL啦)
  2、类型匹配的对象的地址。(也就是用&运算符取一个变量的地址)
  3、另一对象末的下一地址。(这种用法主要用在循环里,其实当指针取这个值时,对其所指的内存进行存取往往会导致灾难)
  4、同类型的另一个有效指针(如“p=q;”)。
  其中第1点...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 07-04 03:19
  指针是C/C++的精华,也是最难的部分。——所有学习C/C++的人都明白这点,当年我初学的时候也是这样。但是,现在再回想指针,我却很难回忆它究竟难在哪儿。应该说这就叫“难者不会,会者不难”吧。“饱汉不知饿汉饥”是有一定的道理的,即使饱汉曾经饿过。
  本书中规中矩地讲解了指针的概念、定义与初始化、操作等。正如上面提到的“饱汉不知饿汉饥”,我似乎很健忘,以至于不记得指针的难点在哪儿了。...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 07-04 02:57
  进入本书第四章,开始讲“数组”了。数组难不难?这不好说。但是数组非常重要这是肯定的,有许多基本的算法就是与数组一起出现的——比如冒泡排序法。而离开了那些算法,数组本身也失去了价值。
  注意:阅读本章时要对“维数”概念加以小心,按平时的理解,“维数”是多维数组中的概念,但是本书中的“维数”指的是元素个数。为了避免干扰,我在阅读笔记中用“个数...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-28 23:59
  第三章就这样结束了,本章介绍了三个标准库类型:string、vector和bitset。
  可惜的是,整个第三章我都是草草读过的。一方面因为它们不属于严格意义上的C++内容,另一方面C时代的东西在不经意间抵触着它们。
  确切地说,它们C时代的那些东西的替代品。它们存在的理由就是它们更优秀。然而优秀是一回事,动不动心又是一回事。
  C语言在类与对象方面的缺失,使C程序员更多地掌握了底层的操作。面对C++标准库中的string和bitset这些东西,C程序员们...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-27 22:44
  每当使用到布尔变量数组时,总是有点心疼。因为布尔变量只需要0和1两种值,然而编译器动辄使用一个字节——甚至四个字节来存放一个布尔变量。面对1/32的使用效率,叫人怎能不心疼?
  要想节约空间也不是没有办法,代价是写更多的代码:用“&”操作将变量的某一个bit取出来,一个字节就可以存放8个布尔变量。但是,这个代价是比较重的,重到足以让程序员望而生畏的地步。
  bitset应运而生,它可以方便地管理一系列的bit位而...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-27 22:22
  迭代器与数据库的相似之处在于end()函数返回值为“指向末元素的下一个”。跟数据记录集的eof这么相似。话说回来,熟练于C/C++的程序员一定不会忘了,利用下标访问数组时用的总是用“半开半闭区间”。就拿“inta[10];for(inti=0;i!=10;i++)”来说,下标为10就可以视为“最后一个元素的下一个”。只是以前不会有这么明显的思考。
  迭代器与指针的相似之处在于它的...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-27 02:29
  对于for语句,我几乎总是这样写的:“for(inti=0;i<Max;i++);”。但是,按本书的说法,我这样写似乎同时犯了两个错误。
  1、本书中写for语句中的第二个表达式(条件表达式)时总是用!=,而不用<。这几天来虽然心里觉得奇怪,但是一直没去思考这里面的含义。本书没有急着告诉我“所以然”,只是提醒我读完本书的第二部分后就会明白。我等着吧:)
  2、我总是觉得用Max这样一个变量去代替某个需要用函数...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-27 01:51
  终于让“类模板”上场了,可惜的是,在本书的第三章,还不能彻底让类模板浮出水面,只能将就着提一下。
  引用:使用类模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。……vector并不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。
  笔记:“vector<int>ivec;”中,“vector<int>”是一个数据类型,C...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-27 01:40
  习惯了VC++的CString类,而此前用的又是C语言,所以,压根没有看一眼string。现在既然书中专门讲它,我就看一看吧。
  定义与初始化:
  strings1;
  strings2(s1);
  strings3("value");
  strings4(n,'c');//由n个c组成的一串
  string对象的输入除了可以“cin>>s1;”以外,还可以将cin...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-26 20:41
  虽然实际工作中绝少用到cin和cout,但是我还是记得要用它们必先“usingnamespacestd;”,至于为什么这样做,三个字:不知道。
  本书从一开头就用到了cin和cout,但是它没有using,而是每一次用到它们都写成“std::cin”和“std::cout”,同时提醒说这两个字名是来自std命名空间的。于是,我似乎明白了“usingnamespacestd;”的作用。...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-26 17:10
  头文件的用处主要是代码重用——重用不仅仅是为了减少工作量,还可以保证每一次重用都是完全相同的内容。
  正因为头文件可以多次重用,所以要防止有些只能出现一次的代码放进头文件中。比如变量的定义只能有一次,声明(含extern且不含初始化)却可以有多次。函数也是。
  引用:一些const对象定义在头文件中。
  笔记:看到这里,总算想通了前面的困惑:为什么const常量的作用域仅为一个文件。正如我前面的估计,const常量是不开劈内存空间的...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-26 10:18
  首次考虑class与struct的关系源自我对类对象占用内存数的观察。我发现VC++6的CString——这么强大的类——它占内存居然是4字节(sizeof(CString)为4)。那时我就认为,类对象仅仅在内存中存放成员变量(《C++Primer》称作“数据成员”)而不存放成员函数。后来,读林锐博士的《高质量C/C++编程指南》时,才看到了比较正规的说法:C++中class与struct没有本质的区别。—...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-26 01:12
  枚举是我向来不太喜欢用的东西,几乎我见过的每本书都是这样介绍枚举的:
  enumweekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
  我看到这里,总是想:多浪费啊,与其这样,还不如直接用0-6这些数呢。以后要写“weekdayToday=Sunday;”,哪有“intToday=0;”舒服。
  本书似乎早看透了我的心理,于是,讲...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-25 02:41
  长期以来,我一直在疑惑:typedef这个词要它干什么?因为没有它我照样可以完成所有任务。而有了它我反而觉得无法适应。比如“UINTi;”,为什么不写作“unsignedinti;”?本书用简短的三句话告诉我它存在的意义:
  引用:typedef通常被用于以下三种目的:为了隐藏特定类型的实现,更强调使用类型的目的;简化复杂的类型定义,使其更易理解;允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
  笔记:第三...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-25 02:12
  引用是C++的特色,一般用在函数的参数中。按有些书本的说法,叫“普通变量的用法,指针变量的效果”。书中本节没有讲诉引用在函数参数中的用法,只提了“给变量起个别名”这一个用处(毕竟本书才开头)。说实在的,如果撇开函数参数,还真想不到引用有什么用处。
  引用这个概念本身也不难理解(除了对C程序员来说有些不习惯以外),但是引用的符号却增加了理解它的难度,我经常在论坛上看到有初学者对“&”和“*...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-25 02:03
  如果将变量定义放在任何{}的外面,则该变量是全局的,这个规则不适用于const常量。
  以前虽然心里隐隐约约有这个感觉,但是从未正面考虑过这个问题。之所以隐隐约约有此感觉,是因为我认为编译器并不为const常量开劈内存空间。
  我曾经专门做过测试:程序如下:
constinti=5;
int*p;
p=(int*)&i;
cout<<*p<<"\t"<<i<...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-24 02:18
  作用域这个概念是程序员都耳熟能详的知识点。这部分知识我几乎可以跳过,不过我还是认真阅读了相关内容。阅读过程中还是有体会的:
  有无数书本曾经提醒过我:少用(尽量不用)全局变量,多用局部变量。其实,即使是局部变量,也还有作用域大小的,局部变量的作用域也是越小越好。原因自然和少用全局变量一个道理。正如书中所言:“通常把一个对象定义放在它首次使用的地方是一个很好的办法。”
  以往,我使用局部变量总是把它放在函数的开头,表示这些变量在本函数中起作用。唯...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-24 01:17
  extern用来告诉程序:你不用为我的变量开劈内存空间,你只要知道这个变量别处已经声明过了。所以,我总是在程序包含多个CPP文件时才这样用:
  1、在某一个CPP文件中直接定义变量,如inti=0;
  2、其它CPP文件中声明变量,如externinti;
  但是,书中介绍exturn还可以用来定义,如:externdoublepi=3.1416;特点是该extern语句包含变量的初始化。
  我觉得C++标准这样做有些多余,而且增加了出错的可能...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-24 00:51
  intival(1024);//直接初始化
  intival=1024;//复制初始化
  以前的我常用第二种用法,原因很简单:从来没见过第一种用法。直到后来学习了林锐博士的《高质量C/C++编程指南》。
  那本书在讲类的构造时说道:CMyClassb=a;这种形式看起来像赋值,实际上调用的是拷贝构造函数。
  那本书给我的感觉仅仅停留在类变量的初始化中,一直没有过渡到内置变量类型。直到后来,我在用VC++.NET的向导功能编程序时,才发现向导帮我...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-23 21:30
  引用:对象是内存中具有类型的区域。
  笔记:这句话说得很直白,也只有这样面向C++熟练工的书才可以这样说,毕竟初学者不知道内存与变量的关系,或者还没考虑到。  引用:C++还保留了一些词用作各操作符的替代名。这些替代名用于支持某些不支持标准C++操作符号集的字符集。它们也不能用作标识符(此处指变量名,偷猫标)。
  一般的书只提到C++变量名不可以使用关键字,本书还额外提了这样一句,然后列出一个表,有and、bitand、compl、not_eq、or_eq、xor_e...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-23 20:49
《C++Primer》说了,字符常量或字符串常量前加L,表示wchat_t类型,于是我试了一下:
程序如下:
chara="a";
wchar_tb=L"a";
cout<<a<<endl;
cout<<b<<endl;
结果如下:
a
0012FEBC
晕,怎么出现这个结果?
让我再试。
程序如下:...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-23 15:29
  引用:……大多数通用机器都是使用和long类型一样长的32位来表示int类型。整型运算时,用32位表示int类型和用64位表示long类型的机器会出现应该选择int类型还是long类型的难题。在这些机器上,用long类型进行计算所付出的运行时代价远远高于用int类型进行同样计算的代价。……决定使用哪种浮点型就容易多了:使用double类型基本上不会有错。在float类型中隐式的精度损失是不能忽视的,而double类型精度代价相对于flo...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-22 18:27
第一部分,第二章
  引用:C++标准规定了每个算术类型的最小存储空间,但它并不阻止编译器使用更大的存储空间,事实上,对于int类型,几乎所有的编译器使用的存储空间都比所要求的大。
  笔记:确实如此,VC++中int和long是一样大。VC++.NET增加了对_int64的支持。
  引用:字符类型有两种:char和wchar_t,wchar_t类型用于扩展字符集,比如汉字和日语。
  笔记:我怎么不知道wchar_t?我自己用包含汉字的字符串时用的也是...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-22 17:23
第一章:快速入门
  本章的存在使本书变得不像一本“规范书”,似乎成了“入门书”,这可能是后来版本新加入的内容。以至于这一章节被排除在任何一个“部分”之外。
  本章“无厘头”地简要介绍了cin、cout、注释、while、for、if等概念。这么多东西,每一个都介绍点皮毛,然后组合成一个综合实例。
  我称其为“无厘头”有以下原因:如果本书面对不...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-22 16:29
  在读本书之前,我已经有过一段编写C++程序的历史,如果连C语言也算在内,可以追溯到十年前。用BASIC语言编程序的历史则有十四年(1992-2006)。
  长期编程序中所使用的参考书无非有两种:介绍算法的书和介绍语法的书。我所买的参考书往往是同时介绍两者的。而对语法的介绍,则只是基于某一个编译器。
  于是,这十年来,我所学习的“C/C++”,从本质上说只是TurboC和VisualC++,对C/C++本身的理解也是被编译器过滤的内容。不是我不想...
关键词:C++,MFC,VC,Primer,编程,教程,读书 读书笔记 - C++ Primer 06-22 15:33
1 2 3
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!