
c++ primer 4e 学习札记
文章平均质量分 59
kenlinyh
这个作者很懒,什么都没留下…
展开
-
c++ primer(第四版)学习札记 8-23
1、容易混淆的问题:ex2_31(a) extern int ix = 1024;(b) int iy;(c) extern int iz;(d) extern const int &ri;确定以上四个,哪些是定义,哪些是声明这就决定了语句放置的位置,是在头文件中亦或是c++文件中,因为头文件是声明,不是定义。如果多处定义,将会造成link错误(a)很明显是定义,因为都赋了初值了(b)没有exte原创 2005-08-23 20:47:00 · 860 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-30
1、在下面三种情况中,我们不使用copy的方式传递参数:(1)当我们需要函数改变argument的值的时候(2)当我们要传递大对象的时候,copy就会有时间和空间上的浪费,这在现实的程 序中很常见。(3)当没有办法copy对象的时候(这个问题不知道怎么会出现?哦,13章将会提到) 2、 在函数参数表中使用reference to const比reference to nonconst要来得原创 2005-09-30 16:56:00 · 1135 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-24
1、ex4_22: const char *cp = "hello"; int cnt; while (cp) { ++cnt; ++cp; } while (*cp) { ++cnt; ++cp; }解释两个循环的不同我的理解是第一个循环是判断cp指针是否为空作为循环条件的,而++cp的操作并不会让cp为空,所以循环会持续进原创 2005-09-25 15:30:00 · 1089 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-29
1、在do-while语句中,有个细节是应该要注意的,就是while (condition);在这个语句后面的分号千万不要忘记了,这和while是不同的还有,如果do中定义的变量,由于作用域的问题,将不能在while语句中访问,所以应该在do前将循环中要使用的变量定义好。同时,也避免在while中定义变量,这样由于while语句在后,所以do中是无法使用的。 2、使用goto语句的时候,应注意原创 2005-09-29 16:42:00 · 1045 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-28
1、对于case语句来说,两个东西不能忘记,一个是每个标签的break,还有就是default 2、书中作者给出一个很好的建议,而且一直在提醒读者,就是当使用一些非常规用法时,应该要注意做出注释,以方便看你程序的人阅读。比如使用空语句,case语句间不使用break等 3、在swith语句中,每个case所对应的值必须为整型,而且必须是常量,还有,两个相同值的case语句也是错误的。 4、还有就是原创 2005-09-28 09:06:00 · 1155 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-27
1、int *pi = new int; 这样pi指向一个未初始化的整型变量,而 int *pi = new int(); 这样pi就指向一个初始化为0的整型变量 2、int i; int *pi = &i; delete pi;这样是错误的,因为pi并不是分配在free store里的 3、delete p;当写上以上的语句时,虽然这个内存已经被释放掉了,可是p仍然是一个地址值,p被原创 2005-09-27 09:20:00 · 1017 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-25
1、21 % -5; // machine-dependent: result is 1 or -4 21 / -5; // machine-dependent: result -4 or -5在%和/这两种操作中,如果仅有一个操作数是负数,则要根据不同机器来判断,拿/来说,如果结果的符号同分母,那么结果截断就靠近负无穷,而如果结果符号同分子,则结果截断后就靠近0。 2、如果在程序中这原创 2005-09-26 08:57:00 · 1155 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-10
1、ex4_19:(a) int i;(b) const int ic;(c) const int *pic;(d) int *const cpi;(e) const int *const cpic;这些中,哪些是非法的。本想,除了第一个,常量都要初始化的,可是vc的编译器没有报(c)的错,这是为什么呢?2、ex4_20:(a) int i = -1;(b) const int ic = i;(c原创 2005-09-10 21:05:00 · 700 阅读 · 0 评论 -
c++ primer(第四版)学习札记 9-5
1、对vector的操作中,使用pushback来增加元素,而不是使用[]操作符赋值后增加元素,[]操作符仅用来 得到某一元素,并且这一元素要存在!这和数组不同。2、vector::const_iterator和const vector::iterator的区别在于,前者指针所指的值是常量,而后者是指针是常量第三章结束 3、对指针的声明中,有int* p和int *p两种,前一种给人的感觉意思比原创 2005-09-08 19:45:00 · 746 阅读 · 0 评论 -
c++ primer(第四版)学习札记 8-20
今天看的不是很多,忙其他事了,不过还是要坚持把所得post上来1、c++类声明的大括号后头是有分号的,这和java不同如果忘了加,后果是:ex2_28.cppex2_28.cpp(4) : error C2628: Foo followed by int is illegal (did you forgeta ;?)发现ms的编译器还是蛮智能的:)2、在c++中,struct和clas原创 2005-08-20 22:03:00 · 945 阅读 · 0 评论 -
c++ primer(第四版)学习札记 10-8
1、来看这段程序: char &get_val(string &str, string::size_type ix) { return str[ix]; } int main() { string s("a value"); cout get_val(s, 0) = A; // chang原创 2005-10-08 17:35:00 · 995 阅读 · 0 评论