引用:return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。
引用:return语句有两种形式:reutrn;returnexpression;……第二种形式提供了函数的结果。
笔记:以上第一句话说了return的两个作用之一:结束函数。return的作用之二是提供函数的返回值。
对于return语句的两种形式,情式一只能用于无返回值的函数,情式二可以用于有返回值的函数也可用于无返回值的函数。...
引用:return语句有两种形式:reutrn;returnexpression;……第二种形式提供了函数的结果。
笔记:以上第一句话说了return的两个作用之一:结束函数。return的作用之二是提供函数的返回值。
对于return语句的两种形式,情式一只能用于无返回值的函数,情式二可以用于有返回值的函数也可用于无返回值的函数。...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
08-01 01:24
如果将数组作为实参来调用函数,函数接收到的形参其实是一个指针。数组名是可以转换为指针的,但是数组名和指针毕竟不等价。所以,这样传递的结果是丢失了数组原有的一些特性。最大的损失莫过于sizeof对数组大小的测试。试看以下程序:
voidFuncA(int*temp)
{
cout<<sizeof(temp)<<endl;
}
voidFuncB(inttemp[])
{
cout<...
voidFuncA(int*temp)
{
cout<<sizeof(temp)<<endl;
}
voidFuncB(inttemp[])
{
cout<...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-31 02:31
引用是给变量取一个别名,所以引用传递会直接进行变量本身的传递。它的最大好处是可以把别处对变量的改变保留下来,第二好处是它提高了性能:如果函数的返回值是一个引用,那么,如上文所说,它会节约一组构造、赋值和析构过程。但是,函数返回引用往往会带来一些意想不到的错误:比如返回临时变量的引用。
//一个错误的函数
int&Max(inti,intj)
{
returni>j?i:j;
}
以上函数的错误在于,i和j在函数...
//一个错误的函数
int&Max(inti,intj)
{
returni>j?i:j;
}
以上函数的错误在于,i和j在函数...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-30 01:45
函数最多可以返回一个值,也可以不返回任何值(也有“返回void”的说法)。之所以最多只能返回一个值,因为只有这样才能在表达式中使用。比如“y=Sin(x);”,如果Sin函数返回多个值,这个表达式就失去了意义。之于为什么可以不返回任何值,经历过BASIC的人应该更能理解。因为BASIC中把有返回值的程序段叫函数,没有返回值的程序段则叫做“子程序”。很显然,“子程序”就是完成一个特定的功能后结束的程...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-29 22:43
有一只蚊子从我眼前飞过,我以迅雷不及掩耳之势拍了过去。结果蚊子以更快的速度从我手边绕走。坐在我旁边的美眉笑了起来。
正在我觉得很没面子的时候,又一只蚊子飞过来。这回我可是做好了准备的了。一个降蚊十八掌,那蚊子还没来得及想自己是怎么死的,就已化作一瘫肉泥。
MM赶紧看我的手心,急切地问“有血吗?”。我摊开手掌,说:“没有。”MM叹了口气,心里好生失望。
我笑道:“如果只给你选择一个的话,你应该...
正在我觉得很没面子的时候,又一只蚊子飞过来。这回我可是做好了准备的了。一个降蚊十八掌,那蚊子还没来得及想自己是怎么死的,就已化作一瘫肉泥。
MM赶紧看我的手心,急切地问“有血吗?”。我摊开手掌,说:“没有。”MM叹了口气,心里好生失望。
我笑道:“如果只给你选择一个的话,你应该...
[ 查看全文 ]
经过三篇文章的细述,函数的参数传递应该比较明朗了,经过一番对比,似乎引用传递是最优秀的一种传递方式。第一、它用法很简单,类似于值传递,第二、它功能很强大,类似于指针传递,第三、它很安全,可以避免指针传递带来的危险,第四、它效率高,函数中不必要进行对象的创建、赋值与释放。第五、如果不希望实参被改变,可以使用const修饰形参……
但是,天下没有这么便宜的午餐!引用传递不是倒处能用的。举个例子:
voidSwap(int&a,int...
但是,天下没有这么便宜的午餐!引用传递不是倒处能用的。举个例子:
voidSwap(int&a,int...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-26 01:57
C++有了“引用传递”后,“形参的改变不影响实参”被判无效。因为传递给函数的并不是一个值,而是变量自身。在函数中定义的形参虽然还是局部变量,但却是一个引用。虽然这个引用的作用域仅限于函数内部,但是由于它与实参就是同一回事,所以对它的操作完全等同于对实参的操作。比如你叫“黑旋风”去买鱼,或者叫“铁牛”去买鱼,去的都是同一个人。
C++为什么要有“引用传递”这回事...
C++为什么要有“引用传递”这回事...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-25 00:47
“形参的改变不影响实参”这句话说起来轻巧,但是要完全理解,似乎还有几个玄机。
在我发表《函数的定义》一文后,有朋友发表意见,提到了“函数调用过程中的入栈与出栈”,在此首先作个说明:我读的是《C++Primer》,而不是《编译原理》,入栈与出栈不归我讨论。在现在讨论的尺度内,我们可以这么认为:形参是函数内部的一个局部变量,该局部变量在函数开始执行时被初始化,而初始化它的值则来自实参的值。也就是说,它的定义与初始化类似于“...
在我发表《函数的定义》一文后,有朋友发表意见,提到了“函数调用过程中的入栈与出栈”,在此首先作个说明:我读的是《C++Primer》,而不是《编译原理》,入栈与出栈不归我讨论。在现在讨论的尺度内,我们可以这么认为:形参是函数内部的一个局部变量,该局部变量在函数开始执行时被初始化,而初始化它的值则来自实参的值。也就是说,它的定义与初始化类似于“...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-25 00:13
说到形参与实参,在C++出来之前其实很简单,就一句话:形参的改变不影响实参。这个状态直到C++有了“引用传递”才有改变。
要弄清这个,首先得弄清形参与实参是什么东西。因为函数是一段“可以重用而不必重写”的代码,每次重用当然未必完全相同(不可否认有些函数每次重用都完全相同),那么不同在哪里呢?又怎样产生不同呢?一种方法是依靠随机,随机是个好东西,不要说客户了,连程序员都无法控制每次调用的结果。第二种方法是凭客观条件(比如运行时间、机...
要弄清这个,首先得弄清形参与实参是什么东西。因为函数是一段“可以重用而不必重写”的代码,每次重用当然未必完全相同(不可否认有些函数每次重用都完全相同),那么不同在哪里呢?又怎样产生不同呢?一种方法是依靠随机,随机是个好东西,不要说客户了,连程序员都无法控制每次调用的结果。第二种方法是凭客观条件(比如运行时间、机...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-24 23:06
不记得在哪本书上看到过,函数的定义为“有名称的一段代码”。这大概地说明了函数的实质:首先、它是一段代码,其次、这段代码可以被重复使用而不必重复编写,第三、它是有名字的,在需要重用的时候凭名字来调用。
这个说法到了C++中变得复杂了。原因之一是C++支持函数重载,也就是说出现了同名函数。虽然编译器在编译时产生不同的函数名,但那必竟是编译器的事,对于程序员来说就是同一个函数名。原因之二是C++支持运算符重载,可以用一个类似于“+”号的...
这个说法到了C++中变得复杂了。原因之一是C++支持函数重载,也就是说出现了同名函数。虽然编译器在编译时产生不同的函数名,但那必竟是编译器的事,对于程序员来说就是同一个函数名。原因之二是C++支持运算符重载,可以用一个类似于“+”号的...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-24 01:46
进入第七章学习。
“函数”这个概念在C/C++里头是很烦人的。原因在于,好多C语言入门书的第一章第一节都说“C语言是由函数组成的”,初学者学到这里,就好像是刚推开C的大门就被一个麻袋套在头上,什么也看不见了。那些书本还举了一个例子,然后对照着例子说“这个程序是由main()、scanf()、printf()函数组成的……”。我晕啊,初学者第一天上C的课,哪里会管什么函数不函数的。...
“函数”这个概念在C/C++里头是很烦人的。原因在于,好多C语言入门书的第一章第一节都说“C语言是由函数组成的”,初学者学到这里,就好像是刚推开C的大门就被一个麻袋套在头上,什么也看不见了。那些书本还举了一个例子,然后对照着例子说“这个程序是由main()、scanf()、printf()函数组成的……”。我晕啊,初学者第一天上C的课,哪里会管什么函数不函数的。...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-24 00:35
程序员是要慢慢成长的,比如错误处理这种事情,就不是一开始就面对的。当我们编的程序还很小,小到“cin>>i;cout<<i;”这样的程度,错误处理不是我们要学习的目标。但是,一旦开始编写实用的程序,那么,无论考虑多么周到,无论代码多么精良。意外总是难免的。这些意外可能来自程序员的设计不到位、可能来自用户的错误操作、还可能来自机器与网络的不确定因素。
没有什么比追踪错误更难过的事了,记得有一回我在追踪一个VB程序的错误。经过长时间测...
没有什么比追踪错误更难过的事了,记得有一回我在追踪一个VB程序的错误。经过长时间测...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-23 01:00
break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,continue则相当于跳级。对于break,程序究竟跳到哪儿比较好理解。但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面。
如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括它们的最里层起作用。于是,设想一下子跳出多重循环的人可能忘不了goto。
...
如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括它们的最里层起作用。于是,设想一下子跳出多重循环的人可能忘不了goto。
...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-22 23:42
while中有一个怪事:类似于“while(inti=GetInt())”这样的语句,在条件中定义一个变量,在for中非常常见,也很好理解。但是用在while中却有所不同,如果用在while中,那么每次循环都会经历一次创建和撤销的过程。——天,还是不要这样写吧。幸亏我总是在while前面定义并初始化变量的。
do-while与while有着不一般的关系,所以几乎所有的书本都是把它们放一起讲的。当年学BASIC时,花了不少的功夫去学...
do-while与while有着不一般的关系,所以几乎所有的书本都是把它们放一起讲的。当年学BASIC时,花了不少的功夫去学...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-22 13:18
本书不愧为经典书,在if这地方能避免说教,讲得绘声绘色,真叫人佩服。
大体上if要注意的就只有else的配对问题了。如果在else前方有多个没有配对的if,那就找最近的一个配对。如果要改变这种默认的“拉郎配”,就加上花括号。
还是引用林锐博士的一句话吧:“if、for、while、do等……不论执行语句有多少都要加{}。这样可以防止书写失误。”(《高质量C++/C编程指南》第16页)...
大体上if要注意的就只有else的配对问题了。如果在else前方有多个没有配对的if,那就找最近的一个配对。如果要改变这种默认的“拉郎配”,就加上花括号。
还是引用林锐博士的一句话吧:“if、for、while、do等……不论执行语句有多少都要加{}。这样可以防止书写失误。”(《高质量C++/C编程指南》第16页)...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-21 23:53
祝贺进入第6章的学习。
简单语句就是只有一句的语句,“复合语句”也叫语句块,是由多句语句组成的一个整体。虽然BASIC也有语句块的概念,但是它们却是不同的概念:BASIC将简单语句视为特殊的语句块,而C++则将语句块视为特殊的简单语句。个人认为,C++中复合语句的存在是为了补充C++没有“endif”之类语句的缺陷。
BASIC中,if有endif(行if除外)、while有wend,do有loop。也就是说,有头就...
简单语句就是只有一句的语句,“复合语句”也叫语句块,是由多句语句组成的一个整体。虽然BASIC也有语句块的概念,但是它们却是不同的概念:BASIC将简单语句视为特殊的语句块,而C++则将语句块视为特殊的简单语句。个人认为,C++中复合语句的存在是为了补充C++没有“endif”之类语句的缺陷。
BASIC中,if有endif(行if除外)、while有wend,do有loop。也就是说,有头就...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-21 00:21
引用:显式转换也称为强制类型转换。
笔记:我觉得要提强制类型转换,得从C风格的说起。这里面可能有我个人的原因。因为我个人习惯了C风格的强制类型转换。
在C语言中,强制类型转换就是用借助一对括号同时把类型名和表达式列出来,比如“(int)t”和“int(t)”就是把t转为int型。
引用:因为要覆盖通常的标准转换,所以需显式使用强制类型转换。……显式使用强制类型转换的另一个原因...
笔记:我觉得要提强制类型转换,得从C风格的说起。这里面可能有我个人的原因。因为我个人习惯了C风格的强制类型转换。
在C语言中,强制类型转换就是用借助一对括号同时把类型名和表达式列出来,比如“(int)t”和“int(t)”就是把t转为int型。
引用:因为要覆盖通常的标准转换,所以需显式使用强制类型转换。……显式使用强制类型转换的另一个原因...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-20 23:33
与算术类型相比,类的转换更复杂。因为算术转换只涉及到精度的问题,而类对象的转换却涉及到能否转换以及怎样转换的问题。
隐式转换就是隐式转换,它会出现在你没有注意的地方。参看以下代码:
classCMyInt
{
public:
CMyInt();
CMyInt(inti);
~CMyInt();
private:
intm_i;
};
CMyInt::CMyInt(...
隐式转换就是隐式转换,它会出现在你没有注意的地方。参看以下代码:
classCMyInt
{
public:
CMyInt();
CMyInt(inti);
~CMyInt();
private:
intm_i;
};
CMyInt::CMyInt(...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-20 22:09
对于我们来说,3+1.5=4.5。但是对于计算机来说,这两个数的相加可不这么简单。因为3与3.0是不同的数据类型,3.0与1.5是可以相加的,3却不能与1.5相加。于是,C++在对上面的表达式进行处理时,有必要对其中一个(或两者)进行转换。
因为这个转换是“隐式”的,也就是说这个转换不让程序员知道,那么,系统就不能必须保证不产生损失,这个损失指的是精度。为了不损失精度,数据总是向精度高的类型转换。惟一的例外是当某个变量用作条件时,它被转换为bool型。...
因为这个转换是“隐式”的,也就是说这个转换不让程序员知道,那么,系统就不能必须保证不产生损失,这个损失指的是精度。为了不损失精度,数据总是向精度高的类型转换。惟一的例外是当某个变量用作条件时,它被转换为bool型。...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-20 00:09
林锐博士曾将内存管理比喻为“雷区”(《高质量C++/C编程指南》第44页),内存管理这块难不难?恐怕不好说。“会者不难难者不会”嘛。但是说内存管理这块难以成为“会者”,应该是没有错的。
程序时时刻刻与内存打交道,只不过以往我们不用考虑,甚至不用知道。所以,所谓“内存管理”,是特指堆内存。
如果把堆内存和栈内存的使用放在一起考虑,可以降低对内存管理恐惧。
一...
程序时时刻刻与内存打交道,只不过以往我们不用考虑,甚至不用知道。所以,所谓“内存管理”,是特指堆内存。
如果把堆内存和栈内存的使用放在一起考虑,可以降低对内存管理恐惧。
一...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-19 23:00
说到优先级,我能熟练背出“先乘除,后加减”,之于C++列出的整整19个优先级,每个优先级又包含若干个操作符,我总是看了就头皮发麻。以我的记性,连军旗里哪个大哪个小都背不出来,这几十个操作符——还是饶了我吧。
记住林锐博士的话:“如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。”(《高质量C++/C编程指南》第26页)这样做最直接的作用是不用记忆了复杂的优先级了,不用记忆并不是因...
记住林锐博士的话:“如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。”(《高质量C++/C编程指南》第26页)这样做最直接的作用是不用记忆了复杂的优先级了,不用记忆并不是因...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-19 01:49
把sizeof说成操作符可能有些不合习惯,因为sizeof的用法与函数没区别。但是sizeof与函数有着本质的区别:它是编译时常量。也就是说,在程序编译时,就会求出它的值,并且成为程序中的常量。
sizeof本身比较简单,惟一要提的就是它对数组名和指针进行操作的结果。
inta[10];
sizeof(a);
该操作返回的是数组所有元素在内存中的总长度。但是如果对指针进行操作,返回的则是指针本身的长度,与指针所指类型无关。
正因为...
sizeof本身比较简单,惟一要提的就是它对数组名和指针进行操作的结果。
inta[10];
sizeof(a);
该操作返回的是数组所有元素在内存中的总长度。但是如果对指针进行操作,返回的则是指针本身的长度,与指针所指类型无关。
正因为...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-19 01:20
我觉得条件操作符的存在就是为了简化if-else语句。第一,它与if-else语句的功能完全一致;第二,它虽然是一行语句,但是它规定了求解顺序,这个顺序保证了有些表达式不被求值。
条件操作符是有一定的危险性的,危险的原因在于它的优先级特别底,还容易漏掉括号。它的优先级仅仅高于赋值和逗号运算符,也就是说,只有在与赋值或逗号共存时,才可以免去括号,其它情况下都得加上括号。漏加括号的BUG是很难发现的。
比如“cout<<(i<j)?i:j...
条件操作符是有一定的危险性的,危险的原因在于它的优先级特别底,还容易漏掉括号。它的优先级仅仅高于赋值和逗号运算符,也就是说,只有在与赋值或逗号共存时,才可以免去括号,其它情况下都得加上括号。漏加括号的BUG是很难发现的。
比如“cout<<(i<j)?i:j...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-19 01:05
箭头操作符是C++发明的全新操作符,但却不是C++才用到的功能。早期的C语言虽然没有类,却有结构体,也允许有指向结构体对象的指针。不同的只是没有发明“->”这个符号来进行简化操作。说到底,“->”的出现只是代替原来就可以实现的功能。
引用:C++语言为包含点操作符和解引用操作符的表达式提供了一个同义词:箭头操作符(->)。
笔记:这一同义词的出现,不仅仅使程序简化而且更易于理解,更重要的是,它降低了...
引用:C++语言为包含点操作符和解引用操作符的表达式提供了一个同义词:箭头操作符(->)。
笔记:这一同义词的出现,不仅仅使程序简化而且更易于理解,更重要的是,它降低了...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-19 00:48
自增和自减符作符是如此常用,以至于没有必要提了。但是任何一本书都会下重手来提它,原因是它虽然简单,却含有玄机。
讲到前自增和后自增时,几乎所有的书都是这样讲的:用“j=i++”和“j=++i”对比,告诉读者虽然i都增了1,但是j却不一样。
这也没办法,因为绝大多数书在讲到++时还没有提到“表达式的值”这个概念,有些书本可能从头到尾都不提。对于“j=i++;”来说,它是一...
讲到前自增和后自增时,几乎所有的书都是这样讲的:用“j=i++”和“j=++i”对比,告诉读者虽然i都增了1,但是j却不一样。
这也没办法,因为绝大多数书在讲到++时还没有提到“表达式的值”这个概念,有些书本可能从头到尾都不提。对于“j=i++;”来说,它是一...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-18 01:39
本来不想为这段写读书笔记,不过突然想起十几年前的一件趣事来,还是记下来吧。
1993年的时候,学校开设了“劳技”课,讲的是BASIC语言。对于当时连电脑都没看过一眼的我们来说,学校开设这样的课,真是让我们无比感动。我至今仍然感谢我的母校,在片面追求升学率、大量缩减副课的全局下,我的母校居然开设了音乐、美术、劳技等一系列副之又副的课。这让我至今难忘。而令一方面,我今天能够在程序界打拼,完全是从那时候开始陪养的兴趣。如果我的高中没有开设这门课,我未必就不进入...
1993年的时候,学校开设了“劳技”课,讲的是BASIC语言。对于当时连电脑都没看过一眼的我们来说,学校开设这样的课,真是让我们无比感动。我至今仍然感谢我的母校,在片面追求升学率、大量缩减副课的全局下,我的母校居然开设了音乐、美术、劳技等一系列副之又副的课。这让我至今难忘。而令一方面,我今天能够在程序界打拼,完全是从那时候开始陪养的兴趣。如果我的高中没有开设这门课,我未必就不进入...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-16 00:23
关系操作符本身没什么好提的,它们与我们平时身边的逻辑一样,所以不难理解。有两点可以略提一下:
一、因为ASC字符中没有“≥”这些符号,所以只好用“>=”代替。于是产生了BASIC和C++的两种不同符号集:BASIC用“<>”表示不等于,C++则用“!=”。
二、程序设计时不能用“if(i<j<k)”这样的写法。...
一、因为ASC字符中没有“≥”这些符号,所以只好用“>=”代替。于是产生了BASIC和C++的两种不同符号集:BASIC用“<>”表示不等于,C++则用“!=”。
二、程序设计时不能用“if(i<j<k)”这样的写法。...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-15 23:48
光标题就够让人胆怯的了,又是指针?还指向指针?还指向数组?
要弄清这个问题,还得从指针的本质说起。
每次提到指针,我总是要反复提起“指针也是一个变量”,当你对指针本身进行操作时,就是对一个变量进行操作。指针唯一的特点是:它的值是一个内存地址,通过它可以间接寻找到其它变量(或常量)。
如果光通过它寻找其它变量常量,那倒也不必这么复杂。关键是,找来的数据要进行处理的话,必须知道那个数据的类型。大家都知道int和long是不一样的,...
要弄清这个问题,还得从指针的本质说起。
每次提到指针,我总是要反复提起“指针也是一个变量”,当你对指针本身进行操作时,就是对一个变量进行操作。指针唯一的特点是:它的值是一个内存地址,通过它可以间接寻找到其它变量(或常量)。
如果光通过它寻找其它变量常量,那倒也不必这么复杂。关键是,找来的数据要进行处理的话,必须知道那个数据的类型。大家都知道int和long是不一样的,...
[ 查看全文 ]
算术操作符是最容易理解的符号了,因这它与平时做的数学是完全相同的规则。就连小学的知识“先乘除后加减”都完全适用。
不过,就像因为与生活的逻辑完全一样导致易于理解一般,与生活逻辑不一致的问题就比较难以理解了。比如“有9个苹果,3个小朋友分,平均每个小朋友可以分到几个苹果?”,现实中既不可能是-9个苹果,也不可能给-3个小朋友分。而是C/C++中的除法和求余却不得不面对这种情况。它们非但难于理解,而且还有不确定因素。
引...
不过,就像因为与生活的逻辑完全一样导致易于理解一般,与生活逻辑不一致的问题就比较难以理解了。比如“有9个苹果,3个小朋友分,平均每个小朋友可以分到几个苹果?”,现实中既不可能是-9个苹果,也不可能给-3个小朋友分。而是C/C++中的除法和求余却不得不面对这种情况。它们非但难于理解,而且还有不确定因素。
引...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-13 21:41
第五章开始了,看得出来,从这章才真正开始讲解C++的基本内容。没有这里的内容,前四章都是狗屎。
操作符就是我们平时理解的“运算符”了,不过因为C++是计算机语言,它与我们平时生活有着不一样的逻辑,所以,在我们平时看来简单的“3+4”,到了C++里,就得分成一个操作符和两个操作数了。
操作符的含义以及它能得到的结果,不仅仅取决于操作符本身,还同时取决于操作数。当初学C语言的时候,发现做除法要用“10/3.0...
操作符就是我们平时理解的“运算符”了,不过因为C++是计算机语言,它与我们平时生活有着不一样的逻辑,所以,在我们平时看来简单的“3+4”,到了C++里,就得分成一个操作符和两个操作数了。
操作符的含义以及它能得到的结果,不仅仅取决于操作符本身,还同时取决于操作数。当初学C语言的时候,发现做除法要用“10/3.0...
[ 查看全文 ]
关键词:C++,MFC,VC,Primer,编程,教程,读书
读书笔记 - C++ Primer
07-11 01:05
