01 2014 档案
摘要:内存模型和名称空间存储持续性,作用域和链接性C++有三种方案来存储数据自动存储持续性:在函数定义中声明的变量,包括函数参数。在函数或代码块开始执行时创建。执行完函数或者代码块,内存自动释放。静态存储持续性:函数定义外定义的变量和使用关键字static定义的变量。他们在程序的整个运行过程中都存在。动态存储持续性:用new分配的内存,要显式使用delte操作符释放或者程序结束,系统程序来释放。作用域表述变量名称的可见范围。在某一范围内,变量名称不能重复。链接性描述名称如何在不同单元(通常为文件)之间进行共享。链接性为外部,则可多个文件共享。链接性为内部,则只能在一个文件中的函数共享。自动变量无链接
阅读全文
摘要:使用引用参数的主要原因程序员能够在函数中修改调用函数参数中的数据对象通过传递引用而不是整个数据对象,可以提高程序的运行速度。尤其是当数据对象较大时,如结构和类对象。对于使用传递的值而不作修改的函数:如果数据对象较小,如内置数据类型或者小型结构,则按值传递。如果数据对象是数组,则只能使用指针,并且将指针声明为指向const的指针。如果数据对象较大,则使用const指针或者const引用,节省复制结构所需的时间和空间。如果数据对象是类对象,则使用const引用。类设计的语义常常要求使用引用。这是C++增添引用这个特性的主要原因。对于修改调用函数中数据的函数如果数据对象是内置数据类型,则使用指针。如
阅读全文
摘要:处理字符串中字符的标准方式 while(*str){ statements str++;}创建并填充字符串char * pstr = new char[n + 1];pstr = '\0';while(n-- > 0) pstr[n] = cPI的表示:C和C++中并没有提供Pi的数学常量表示,但是我们可以使用数学库的三角函数来表示。#include #define PI (4 *...
阅读全文
摘要:Type value;while(inFile >> value){ //loop body goes here. }if(inFile.eof()){//terminated with EOF}else if(inFile.fail()){//terminated with mismatch}else{//terminated with some reason unknown}
阅读全文
摘要:windows下允许文件名中含有空格。当把文件名中含有空格的文件拖到显示屏上时。系统会自动加上双引号,文件名不含空格的则没有。。fstream对象用含有双引号的文件名打开文件时会失败。所以读取文件名时,一方面要注意不要使用cin >> filename。。。因为这样只能读取一个字符串。含有空格的文件名无法读取完整。另一方面也要注意处理双引号和非法字符、、:*?"|
阅读全文
摘要:如果递增表达式的值不被使用,纯粹使用表达式副作用来改变变量值,则++x;与x++;在作用上效果一样。但是对于用户定义的,且有用户定义的递增和递减操作符,前缀的效率更高一些。因为用户定义前缀时,将值加1,然后返回结果。但是后缀版本,首先赋值一个拷贝,将其加一,然后将复制的拷贝返回。。所以对于类而言,前缀版本效率更高。从语义角度来看,前缀参与表达式运算时返回的是x + 1。比较符合++x;的作用。所以C和C++中令x自增时,养成 ++x;的代码风格更好。。在for(;;++x){;}中也是如此。逗号在C/C++中有两个作用。将变量列表中相邻的名称分开(多用在声明中)列表就是{}(貌似这个名称在Py
阅读全文
摘要:C++中标准输入cin有多种输入方式。。这篇文章罗列的还是简要易懂的。C++输入cin详解。。。如果只是简单的使用cin>>的话,会单个token的读入。但是会忽略换行符,空格,制表符等空白符。其中cin.getline()和cin.get()都会遇到一个非常棘手的事情,就是当输入的字符串,或者说缓冲区中的字符多于第二个参数int的要求时。缓冲区中残余的字符串怎么处理cin>>cin>> var,只会忽略空白符,按照参数var的格式,读入一个合法的字符串。剩下的字符就残留在缓冲区中,不会影响任何状态。下一次就接着上一次读取的位置开始读取缓冲区。对于代码int
阅读全文
摘要:c和c++都是在实践中发展起来的语言。实用性极强。c是与UNIX/Linux的发展相辅相成的。而C++是B.S为了摆脱c与硬件以及底层过于紧密的苦恼,而开发的语言。C++可以说就是c语言的超集。任何c语言的程序理论上都应当是合法的C++程序。 C语言的特点:过程性编程和结构化编程。函数作为编程的主要载体和任务模块。一方面用for,while,if-else为代表的分支来规划程序结构,另一方面采...
阅读全文