2014年3月12日
摘要: 假设这些变量 的地址分别为:7230,8092,10502,如图示: 方框中是变量所存的值,相应下面数字是所存的值对应的存储单元地址不难看出,变量 c 是指向指针的指针,关于它我们从三个方面来考虑,每一个方面对应了不同 的数值: c 是一个 (char**)类型的变量,值是8092 *c 是一个(c 阅读全文
posted @ 2014-03-12 18:25 guozqzzu 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 1. 我们知道,指针可以根据它包含的地址访问到变量值,而且也可以改变它所指的变量的值。但是,我们也可以声明这样的指针:能访问到它所指的值,但不能改变所指的这个值。为了达到这样的目的,我们可以这样做:声明指针所指的类型为 const。例如: int x ; int y = 10; const int* p = &y; x = *p; //ok:reading p *p = x; //出错,*p 是常量,不能被改变这里,最初表达式 &y 是 int* 类型,但被赋值给类型为 const int* 类型的指针。我们要注意:指向非常量的指针可以被隐式转换成指向常量的指针。... 阅读全文
posted @ 2014-03-12 13:09 guozqzzu 阅读(570) 评论(0) 推荐(0) 编辑
  2014年3月10日
摘要: 1. 对指针进行数学运算与其他整型数据类型进行数学运算稍有不同。 首先,对指针只有加法和减法运算,其它运算在指针世界里没有意义。但是指针的加法和减法的具体运算根据它所指向的数据的类型的大小的不同而有所不同。 我们知道不同的数据类型在内存中占用的存储空间是不一样的。 例如,对于整型数据,字符char 阅读全文
posted @ 2014-03-10 23:19 guozqzzu 阅读(2972) 评论(0) 推荐(0) 编辑
摘要: 数组的概念与指针的概念联系非常解密。其实数组的标识相当于它的第一个元素的地址,如:int a[5],数组名a指向它的第一个元素a[0]的地址。 有语句如下: int a[5];int * p; 下面的赋值为合法的: p = a; 这里指针p 和a 是等价的,它们有相同的属性,唯一的不同是我们可以给指 阅读全文
posted @ 2014-03-10 23:18 guozqzzu 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 当声明一个指针的时候我们可能需要同时指定它们指向哪个变量,如:int number;int *tommy = &number;这相当于:int number;int *tommy;tommy = &number;当给一个指针赋值的时候,我们总是赋给它一个地址值,而不是它所指向数据的值。你必须考虑到在声明一个指针的时候,星号 (*) 只是用来指明它是指针,而从不表示间接引用操作符dereference operator (*)。记住,它们是两种不同操作,虽然它们写成同样的符号。因此,我们要注意不要将以上的代码与下面的代码混淆:int number;int *tommy;*tomm 阅读全文
posted @ 2014-03-10 23:18 guozqzzu 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 由于指针可以直接引用它所指向的数值,数值是有类型的,因此在声明指针的时候要指明它所指向的数据类型。 指向一个整型(int)或浮点型(float)数据的指针与指向一个字符型(char)数据的指针并不相同。 因此,声明指针的格式如下: type * pointer_name; 这里,type 是指针所指 阅读全文
posted @ 2014-03-10 23:15 guozqzzu 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 1. 符号 &(reference),表示".....的地址"("address of"),因此称为地址操作符(adress operator),又称引用操作符(reference operator)。例如: 将变量myvar的地址赋给变量foo,因为当在变量名称myvar 前面加ampersand 阅读全文
posted @ 2014-03-10 16:10 guozqzzu 阅读(5833) 评论(0) 推荐(0) 编辑
  2014年3月8日
摘要: 标准头文件 定义了一个叫做 stringstream 的类,使用这个类可以对基于字符串的对象进行像流(stream)一样的操作。这样,我们可以对字符串进行抽取和插入操作,这对将字符串与数值互相转换非常有用。例如:将一个字符串转换为一个整数,可以这样写:#include #include #include string mystr("67"); int myint; stringstream(mystr)>>myint; //vs2010貌似不是很支持这样,改了项目属性-清单-输入输出-嵌入清单->否,成功。 cout> 后面跟一个整数变量来进行提取整 阅读全文
posted @ 2014-03-08 22:26 guozqzzu 阅读(2909) 评论(0) 推荐(2) 编辑
摘要: 基本数据类型(Fundamental Data types)计算机的内存是以字节(byte)为单位组织的。一个字节(byte)是我们在C++中能够操作的最小的内存单位。一个字节(byte)可以存储相对较小数据:一个单个的字符或一个小整数(通常为一个0到255之间的整数)。但是计算机可以同时操作处理由多个字节组成复杂数据类型,比如长整数(long integers)和小数(decimals)。以下列表总结了现有的C++基本数据类型。名称字节数描述范围char1字符(character)或整数(integer ), 8位(bits)长有符号(signed): -128 到 127无符号(unsig 阅读全文
posted @ 2014-03-08 17:09 guozqzzu 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 当我们为数组myword的元素单独赋值时:myword[0] = 'B';myword[1] = 'y';myword[2] = 'e';myword[3] = '\0';正如你可能想到的,这并不是一个实用的方法。通常给数组赋值,或更具体些,给字符序列赋值的方法是使用一些函数,例如strcpy。strcpy (string copy) 在函数库cstring (string.h) 中被定义,可以用以下方式被调用:strcpy (string1, string2);这个函数把string2 中的内容拷贝给string1。string 阅读全文
posted @ 2014-03-08 15:25 guozqzzu 阅读(336) 评论(0) 推荐(0) 编辑