2014年3月8日
摘要: 字符串("good")实际上是一串连续的字符序列,所以我们也可以用简单的字符数组来表示它。如:char foo [20];是一个可以存储最多20个字符类型数据的数组。可以表示为:理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短的字符序列,而且实际中常常如此。例如,foo在程序中可以只存储字符串"Hello" 或者"Merry christmas"。因此,字符数组经常被用于存储短于其总长的字符串,就形成了一种习惯在字符串的有效内容的结尾处加一个空字符(null character)来表示字符结束,它的常量表示可写为0 或 阅读全文
posted @ 2014-03-08 11:20 guozqzzu 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 使用名空间(namespaces)我们可以将一组全局范围有效的类、对象或函数组织到一个名字下面。就是它将全局范围分割成许多子域范围,每个子域范围叫做一个名空间(namespaces) 语法: 两个都叫做value函数同时存在,一个在名空间foo 下面定义,另一个在 bar下面定义,由于我们使用了名空 阅读全文
posted @ 2014-03-08 10:10 guozqzzu 阅读(362) 评论(0) 推荐(0) 编辑
  2014年3月7日
摘要: 有些情况下,我们需要将整个数组作为参数传给函数,这时,如果将整块内存的数据传过去是不可取的,但我们可以把数组的地址传过去,且传递地址更快速有效。定义数组为参数,如:void procedure (int arg[])接受一个叫做arg的整型数组为参数。按如下定义这个被传数组:int myarray [40];其调用方式可写为:procedure (myarray);给出一个完整的例子://array as parameters#include using namespace std;void printarray (int arg[], int length) { for (int n=0;. 阅读全文
posted @ 2014-03-07 21:45 guozqzzu 阅读(448) 评论(0) 推荐(0) 编辑
摘要: *简单表达式如a++或++a,这两种写法代表同样的意思,比如用在常见的for语句中;但当递增increase或递减decrease的运算结果被直接用在其它的运算式中时,它们就代表非常不同的意思了:++a 中,变量a的值先增加,然后再计算整个表达式的值,因此增加后的值被用在了表达式的计算中;a++ 中,变量a的值在表达式计算后才增加,因此a在增加前所存储的值被用在了表达式的计算中。例如:Example 1Example 2x = 3;y = ++x;// x contains 4, y contains 4x = 3;y = x++;// x contains 4, y contains 3例1 阅读全文
posted @ 2014-03-07 21:36 guozqzzu 阅读(5955) 评论(1) 推荐(1) 编辑
摘要: 一个2维数组(bidimensional array)可以被想象成一个有同一数据类型的2维表格。jimmy 显示了一个整型(int )的3x5二维数组,声明这一数组的的方式:int jimmy [3][5];而引用这一数组中第2列第4排元素的表达式为:jimmy[1][3] (下标都从0开始)多维数组(Multidimensional arrays)并不局限于2维。它可以有任意多维,虽然需要3维以上的情况并不多。但是考虑一下一个多维的数组所需要的内存空间,例如:char century [100][365][24][60][60];若一个世纪中的每一秒代表一个字符(char),那么就是多于30 阅读全文
posted @ 2014-03-07 20:16 guozqzzu 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 程序中有未初始化的静态存储变量(Variables withstatic storage)如全局变量,还有局部变量,编译器为他们分配默认值时,全局变量默认是0(zero),局部变量会随机的分配一个值,这个值并不确定,很可能编译器会报错。例如:#include #include using namespace std;int main{int y;cout<<x<<'\n';cout<<y<<'\n';}不报错时:04285838 阅读全文
posted @ 2014-03-07 17:39 guozqzzu 阅读(668) 评论(0) 推荐(0) 编辑
摘要: using 指令后面跟namespace可以将当前的嵌套层与一个指定的名空间连在一起,以便使该名空间下定义的对象和函数可以被访问。我们能够直接使用在namespace中定义的变量而不用在前面加任何范围操作符。例如: #include #include using namespace std;namespace first{int x = 10;int y = 2;}namespace second{double x = 3.2;double y = 2.3;}int main{using namespace first;cout<<x<<'\n';cou 阅读全文
posted @ 2014-03-07 17:00 guozqzzu 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。栈空间,其实栈空间是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。#include#includeusingnamespacestd;inlinestringdbtest(inta);//函数原形声明为inline即:内联函数voidmain(){for(inti=1;i0)?"奇":"偶" 阅读全文
posted @ 2014-03-07 13:23 guozqzzu 阅读(351) 评论(1) 推荐(0) 编辑
摘要: 局部变量只在它所在的块中可见,内部块也是,但内部块又是特殊的块:在外部块中存在的变量名,内部块可以重复使用,且可定义成其它的实体(entity)。这个变量从内部块出来后,又恢复成原始的实体。例如://#include using namespace std;int main () { int x = 1; int y = 3; { int x; //ok,inner scope x = 100; //set value to inner x y = 50; //set value to outer y cout << "inner block:\n"; ... 阅读全文
posted @ 2014-03-07 13:13 guozqzzu 阅读(586) 评论(0) 推荐(0) 编辑