随笔分类 -  learning C++

记录C++学习中的内容
摘要:来自:http://www.learncpp.com/cpp-tutorial/31-precedence-and-associativity/为了正确的计算类似下面这样的式子,4 + 2 * 3,我们必须知道操作符做了什么,以及它们执行的顺序,也就是说首先要明白操作符的优先级。使用常规的数学上的优先级规则,我们知道上面的式子可以这么求解 4 + (2 * 3) = 10在C++中,所有的操作符都分配有自己的优先级。具有高优先级的步骤先被计算。你可以从下面的表中看出乘法与除法(优先级序列5)比加减法(优先级序列6)高。编译器通过这些标签确定如何对它遇到的算式求解。如果两个操作符具有相同的优先级 阅读全文
posted @ 2012-05-10 20:55 grassofsky 阅读(247) 评论(0) 推荐(0)
摘要:来自:http://www.learncpp.com/cpp-tutorial/210-comprehensive-quiz/快速回顾当使用整型变量时,要注意溢出与整型相除的问题。当使用浮点型时,需要注意精度,舍入,相互间比较的问题。当使用字符时,不要将ASCII和数值搞混,注意溢出整型相除的问题。使用const关键字比使用#define更加安全。选了一个问题:给下列数字给出一个合适的类型:1. 用户的年龄(以年为单位)2. 用户是否想要颜色3. pi(3.14159265)4. 书本的页数5. 股票的价格,两个小数位6. 从出生以来你眨眼数(数量超过数百万)7. 一个人出生的时间,年为单位 阅读全文
posted @ 2012-05-10 20:22 grassofsky 阅读(194) 评论(0) 推荐(0)
摘要:原文来自:http://www.learncpp.com/cpp-tutorial/29-hungarian-notation/匈牙利标记法是在命名变量是在变量名的前面加上表示变量类型或是作用域的前缀。 1: int value; // non-Hungarian 2: int nValue; // the n prefix denotes an integer 3: 4: double width; // non-Hungarian 5: double dWidth; // the d prefix denotes a double关于匈牙利标记法在现代程序语言与现代... 阅读全文
posted @ 2012-05-10 10:45 grassofsky 阅读(464) 评论(0) 推荐(0)
摘要:原文来自:http://www.learncpp.com/cpp-tutorial/28-constants/C++使用两种常量:字面常量和符号常量。字面常量通过展示几个例子进行说明 1: int x = 5; // 5 is a literal constant 1: unsigned int nValue = 5u; // unsigned constant 2: long nValue2 = 5L; // long constant默认情况下,浮点型字面常量是double类型的。把它们转化成float值,可以通过增加f或F的后缀。 1: float fValue = 5.... 阅读全文
posted @ 2012-05-07 17:20 grassofsky 阅读(320) 评论(0) 推荐(0)
摘要:from http://www.learncpp.com/cpp-tutorial/27-chars/尽管char类型是一个整数,相比于整数,我们通常用另一种方式对char进行处理。字符能够存储一些小的数,或是ASCII字符集里的字符。ASCII表示American Standard Code for Information Interchange,它给出了美国标准的键盘与1到127数字之间的关系图。举例,'a'在关系图中的代号为97,'b'98。字符总是放在单引号里。 1: char chValue = 'a'; 2: char chValue 阅读全文
posted @ 2012-05-07 10:55 grassofsky 阅读(289) 评论(0) 推荐(0)
摘要:原文来自:http://www.learncpp.com/cpp-tutorial/26-boolean-values/布尔值只有两个可能的值:true(1)和false(0).用bool进行声明: 1: bool bValue;有两种方式进行赋值: 1: bool bValue1 = true; // explicit assignment 2: bool bValue2(false); // implicit assignment正如操作符-能够使得一个正数变成一个负数,逻辑操作符!能够将布尔型值取相反的一个。 1: 2: bValue1 = !true; // b... 阅读全文
posted @ 2012-05-06 23:34 grassofsky 阅读(320) 评论(0) 推荐(0)
摘要:原文form http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/当我们需要存储很大的数值,或有些数字具有小数部分时,可以使用浮点型。一个浮点型的变量能够存储一个实数,如4.0,2.5,3.33,0.1226。有三种不同的浮点数类型:float,double,long double。fload有4个字节,double有8个字节,这些并不是严格不变的。long double是在后来的版本中加入进去的。但是通常上来讲,它也是8个字节大小。浮点型数总是有符号的。下面是一些声明 1: float fValue; 2: d... 阅读全文
posted @ 2012-05-06 08:37 grassofsky 阅读(861) 评论(0) 推荐(0)
摘要:原文 from http://www.learncpp.com/cpp-tutorial/24-integers/整型的变量如-1,0,3,4。C++中含有四种不同的整型变量,char,short,int和long。这些整型之间唯一的不同点是它们占有的内存大小,更大的整型能够保存更大的数值。你可以用sizeof操作符查看具体的大小。在这个教程中,我们假设:a char is 1 bytea short is 2 bytesan int is either 2 or 4 bytesa long is 4 bytes声明一些变量: 1: char chChar; 2: short int ... 阅读全文
posted @ 2012-05-04 14:13 grassofsky 阅读(289) 评论(0) 推荐(0)
摘要:原文from http://www.learncpp.com/cpp-tutorial/23-variable-sizes-and-the-sizeof-operator/正如你在基本寻址一节中学到的,现代计算机中的内存是有字节大小的片段组成的,每个片段都有属于自己的唯一的地址。基于这一点,我们可以将内容想象成一系列邮件夹或邮箱,我们可以通过它来放置或获取信息,通过命名的变量来与它们相关联。但是,这种类比并不总是合理的,很多的变量通常占据不止一个字节的内存。因此,一个独立的变量也许 会使用2,4或8个连续的内存地址。变量使用的内存的大小取决于变量的类型。幸运的是,我们通常通过变量的名字联系内存 阅读全文
posted @ 2012-05-03 14:38 grassofsky 阅读(370) 评论(0) 推荐(1)
摘要:C++保留了63个词。这些词被称作关键词,在C++中其中每一个关键词都有自己特殊的意义。15个以*开头的关键词都是在最初的版本后加上去的,因此,早期的参考书或资料也许没有这些关键词。下面是一些列所有的C++关键词:asmautobool *breakcasecatchcharclass constconst_cast *continuedefaultdeletedodoubledynamic_cast * elseenumexplicit *export *externfalse *floatfor friendgotoifinlineintlongmutable *namespace * n 阅读全文
posted @ 2012-05-02 13:47 grassofsky 阅读(867) 评论(0) 推荐(0)
摘要:http://grass-and-moon.cnblogs.comfrom http://www.learncpp.com/cpp-tutorial/21-basic-addressing-and-variable-declaration/在前面关于变量的课程中,我们已经了解了变量时能够存储一定信息的内存片段的命名。简言之,计算机具有随机存取存储器能够被程序中的变量使用。当变量被声明的时候,一片内存段分配给变量。内存的最小单元是用二进制数表示的,比特,能够存取0和1.你可以把一个比特考虑成传统的灯的开关——当灯开的时候为1,关的时候为0.除了0和1没有别的选择。如果你查看一段内存,你能看到的仅 阅读全文
posted @ 2012-05-01 00:01 grassofsky 阅读(302) 评论(0) 推荐(0)
摘要:from http://www.learncpp.com/cpp-tutorial/1-10a-how-to-design-your-first-programs/将原文中的建议提到前面来讲了:{ //begin advise编写程序时的几个建议保持你的程序有一个简单的开始。新手通常对于它们想要编程实现的内容有很大的野心。“我想要写一个角色扮演的游戏,有图像,有声音,随机的怪物和地下城,有一个城镇,你能够访问并卖掉从地下城获取的东西”,如果你从一开始便尝试写一个复杂的东西,是将会被严重的打击到,从而失去信心。相反,将你的第一个目标设置成足够的简单,一些你能够完成的任务。举个例子,“我想要在屏幕 阅读全文
posted @ 2012-04-29 23:19 grassofsky 阅读(509) 评论(5) 推荐(2)
摘要:from http://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/预处理器是一个独立的程序,在编译器编译你的程序之前运行。这样做的目的是处理指令。这些指令是以#符号开始的,以新行结束而不是以分号结束的特殊的指令。存在几种不同的指令,我们在下面将会谈到。预处理器并不聪明,它不能理解C++语法;但是它在编译器读取之前巧妙的处理了文本。包含你已经看到了#include指令的使用。#include 告诉预处理器把包含的文件中的内容插入到当前指令所在的位置。当你有内容需要在很多不同的地方被调用的时候是很有用的(正 阅读全文
posted @ 2012-04-19 00:41 grassofsky 阅读(320) 评论(0) 推荐(0)
摘要:from http://www.learncpp.com/cpp-tutorial/19-header-files/在程序中,.cpp扩展的文件并不是唯一一种常见的文件。另一种文件称为头文件,有时被称为include file。都文件基本都有一个.h扩展名。头文件的目的是将其它文件要用到的声明整合到一起。标准库头文件的使用看一下下面的程序: 1: #include <iostream> 2: int main() 3: { 4: using namespace std; 5: cout << "Hello, world!" << endl 阅读全文
posted @ 2012-04-17 16:38 grassofsky 阅读(394) 评论(0) 推荐(1)
摘要:from http://www.learncpp.com/cpp-tutorial/18-programs-with-multiple-files/当程序变得越来越大的时候,为了更好的组织,通常将它分为多个文件。使用IDE工作的一个优势在于利用它进行多文件项目的实施是很简单的。你已经知道了如何创建编译单文件项目。把新的文件加入到已经存在的项目中是很简单的。在Visual Studio 2005 Express,在解决方案的资源管理器中右键"source files",选择添加新的项目。给出新文件的名称,然后它将会添加到你的项目中。在Code::Blocks中也用类似的方式进 阅读全文
posted @ 2012-04-17 15:20 grassofsky 阅读(247) 评论(0) 推荐(0)
摘要:from http://www.learncpp.com/cpp-tutorial/17-forward-declarations/看一下下面这个表面上正确的add.cpp程序 1: #include <iostream> 2: 3: int main() 4: { 5: using namespace std; 6: cout << "The sum of 3 and 4 is: " << add(3, 4) << endl; 7: return 0; 8: } 9: 10: int add(int x, int y) .. 阅读全文
posted @ 2012-04-17 14:28 grassofsky 阅读(402) 评论(0) 推荐(1)
摘要:from http://www.learncpp.com/cpp-tutorial/16-whitespace-and-basic-formatting/空白符是被用于格式化的字符。在C++中,空白符主要有空格,制表符,换行。在C++编译器中往往使用一些小的处理将空白符忽略。因此,下面这些语句都是一样的: 1: cout << "Hello world!"; 2: 3: cout << "Hello world!"; 4: 5: cout << "Hello world!"; 6: ... 阅读全文
posted @ 2012-04-17 08:43 grassofsky 阅读(387) 评论(0) 推荐(0)
摘要:from http://www.learncpp.com/cpp-tutorial/15-a-first-look-at-operators/再次谈到表达式在前面的章节中,我们已经定义了一个表达式“能够求值的数学实体”。但是,数学实体是比较模糊的概念。更加准确的来讲,表达式是一个常量、变量、操作符和函数组成的,能够求的值的东东。常量是简单的数字,如5,或3.14159.当我们说起表达式“3 + 4”,3和4都是字面常量。字面常量总是表示它们自己。你已经看了变量和函数。变量的值是内存中含有的值。函数求的值是取决于函数返回的值的类型。因为函数的返回类型为void说明没有返回值,它们往往不是表达式的 阅读全文
posted @ 2012-04-16 19:20 grassofsky 阅读(162) 评论(0) 推荐(0)
摘要:from http://www.learncpp.com/cpp-tutorial/14-a-first-look-at-functions/一个函数是有许多语句的顺序组合用来完成一项特殊的功能。你已经知道每个程序都需要一个入口函数,main()。但是,大多数程序中含有更多的函数,它们的工作方式与main类似。通常你的程序需要中断正在执行的语句暂时去处理一些其他的事情。在现实生活中,你经常这么做。举个例子,当你记起你需要打个电话的时候,你也许正在读一本书。你放好书签,打电话,当你打完电话后,再继续读你的书。C++程序的工作方式类似这么一个过程。当一个程序遇到一个函数调用的时候,会顺序的执行函数 阅读全文
posted @ 2012-04-16 10:12 grassofsky 阅读(373) 评论(0) 推荐(2)
摘要:from http://www.learncpp.com/cpp-tutorial/13-a-first-look-at-variables/变量像x=5的语句是看上去是显而易见的。你可以猜测,我们将5赋值给x。但是x确切是什么呢?x是一个变量。变量在C++中是一片内存的命名,它被用来存储信息。你可以把一个变量想象成一个邮箱,或是一个文件架,我们可以在那里存取信息。所有的计算机都具有内存,称为RAM(随机存取存储器),能够被程序使用。当一个变量被声明时,会分配出一段内存给这个变量。在这一节,我们仅仅考虑整型变量。整型变量只能存储整型值,如1,2,3等。 1: int x;当这个语句被CPU.. 阅读全文
posted @ 2012-04-14 09:46 grassofsky 阅读(495) 评论(0) 推荐(0)