摘要: 1. const指针总是指向相同的地址,该地址是不能被改变的. 1: int nValue = 5; 2: int *const pnPtr = &nValue;*pnPtr = 6; 这样的操作是可行的;而 int nValue2 = 2; pnPtr = &nValue2;这样的操作是不可行的。int *const pnPtr 可以这么理解,pnPtr当作地址,该指针有const地址,并且指向一个整型变量。2. 指向const变量(虽然这个变量本身可以不是const的)的指针 1: int nValue = 5; 2: const int *pnPtr = &nVa 阅读全文
posted @ 2012-05-22 20:48 grassofsky 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 摘要:举了几个动态内存分配过程中,发生内存泄漏的例子1. 分配了内存,却没有及时删除,导致泄漏 1: void doSomething() 2: { 3: int *pnValue = new int; 4: }2. 为指针变量分配了一个内存,然后又让指针变量指向其他的值,导致泄漏 1: int nValue = 5; 2: int *pnValue = new int; 3: pnValue = &nValue; // old address lost, memory leak results3. 连续分配了两次内存,第一次分配的内存由于没有delete,... 阅读全文
posted @ 2012-05-22 20:47 grassofsky 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 先来看一下一段代码: 1: char szString[255]; 2: cin >> szString; 3: cout << “You entered: ”<< szString << endl;这段代码在c++程序中是很常见的,但仔细想一下如果你输入的字符串长度大于255,就会出现溢出的现象,也许这个问题通常会被人忽略。其实我们可以选择一个更好的实现方法,如下 1: char szString[255]; 2: cin.getline(szString, 255); 3: cout << "Your entered: 阅读全文
posted @ 2012-05-22 20:46 grassofsky 阅读(211) 评论(0) 推荐(0) 编辑
摘要: from http://www.learncpp.com/cpp-tutorial/59-random-number-generation/通常在游戏,统计模型程序和科学模拟中会用到随机事件。而由于计算机的本质结构决定计算机只能生成伪随机数据。伪随机生成器,设定一个初始值(seed),对它进行操作形成不同的数值,让它看上去与初始值没有联系。如果算法足够复杂,将同样的算法用到最后生成的数字,这样就能够产生一些列看上去随机的数值。下面是一个产生100个伪随机数的程序:1. 1: #include <stdafx.h> 2: #include <iostream> 3: us 阅读全文
posted @ 2012-05-22 20:45 grassofsky 阅读(293) 评论(0) 推荐(0) 编辑
摘要: from http://www.learncpp.com/cpp-tutorial/44-type-conversion-and-casting/类型隐式转换类型隐式转换的步骤如下所示:Long double (highest)DoubleFloatUnsigned long intLong intUnsigned intInt (lowest) 最底层是int而不是short或是char,是因为char和short在求值时会被扩展为int。隐式转换会出现一些有趣的问题,如5u - 10。也许你会认为结果是-5.但是10为int型,发生隐式转换成unsigned int型,因此最后结果为uns 阅读全文
posted @ 2012-05-22 20:44 grassofsky 阅读(159) 评论(0) 推荐(0) 编辑
摘要: from http://www.learncpp.com/cpp-tutorial/38-bitwise-operators/位操作符的由来主要是为了更充分的利用内存,如果使用bool型变量,它是一个字节大小,其中一个字节的内存中只有一个位被利用,其余的位都被浪费了。但是现在内存是充裕的,程序员发现往往将代码表达的更加让人理解,更加容易维护是一种更好的选择。因此,位操作符的使用不再像最初那么平常了,除了一些特殊的环境中,如需要巨型数据处理的科学计算,或需要超速执行的游戏中,仍然会被使用。不管怎么样,对它有个充分的认识和理解还是必须的。OperatorSymbolFormOperationlef 阅读全文
posted @ 2012-05-22 20:43 grassofsky 阅读(263) 评论(0) 推荐(0) 编辑