- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.4.3 指针变量的运算 【例 3.8】指针的解引用运算。 #include iostream #includestring using namespace std; int main( ) { string s(Hello World!); string *sp = s; cout *sp endl; // 输出:Hello World! *sp = goodbye;// 字符串s 的内容改成 goodbye string s2 (see you later.); sp = s2; // sp指向字符串s2 cout *sp endl; // 输出:see you later. return 0;} 运行结果: Hello World! see you later. 3.4.3 指针变量的运算 3.指针与数组 一个数组A在内存占据一块连续的内存单元,数组名A就是这块连续内存单元的首地址,数组元素根据元素的数据类型依次占据若干连续的内存单元,设有数组A、以及相同数据类型的指针p,若将数组名A赋给指针p(p = A;),则p指向这个数组的首地址,同时p也指向这个数组的第1个元素A[0]的首地址, int A[] = {0, 2, 4, 6, 8}; int *p = A; // p指向A[0],A = A[0] 3.4.3 指针变量的运算 如果希望使指针指向数组中的某个元素,则可使用下标运算符定位该元素,然后用取地址运算符获取其地址: p = A[3]; // p指向数组A中的第4个元素 当指针变量指向数组首地址或者数组中的某个元素后,C++支持通过指针算术运算存取数组中的任意元素。 3.4.3 指针变量的运算 4.指针算术运算 指针的算术运算包括指针的自加(++)、自减(--)、加整型数值n和减整型数值n操作,在指针上加上(或减去)一个整型数值n等价于获得一个新指针,该新指针指向指针原来指向的元素之后(或之前)的第n个元素,如: int A[] = {0, 2, 4, 6, 8}; int *p = A; // p指向A[0],A = A[0] int *p2 = p + 4; // p2 指向A[4] 3.4.3 指针变量的运算 int *p4 = p + 5; // p加上数组长度得数组A的超出末端指针 数组的超出末端指针通常用来当作哨兵,和指向数组的其它指针比较,以判断是否已经处理完数组中的所有元素,或者作为指针算术运算的操作数。对数组的超出末端进行解引用操作,将导致程序崩溃。 指针算术运算必须保证计算出来的新指针指向同一个数组的元素,或指向该数组末端的下一单元,例如上面数组A只有5个元素,则在p上加10是错误的: // 错误,指针超出了数组末端及数组末端的下一个单元 int *p3 = p + 10; 3.4.3 指针变量的运算 指针减法操作,必须保证两个指针指向同一数组,或是同一个数组的超出末端指针: ptrdiff_t n = p2 - p; // 4 自加运算 格式:指针变量++; 将指针指向下一个元素,即指针变量 = 指针变量 + sizeof(指针变量类型)。 3.4.3 指针变量的运算 【例 3.9】指针的算术运算。 #include iostream using namespace std; int main( ) { double a[] = {3.0, 8.2, 5.5, 9.3}; double *p = a[0]; // p指向a[0]元素 cout p endl; p++; // p指向下一个元素,即a[1] cout p endl; cout sizeof(double)= sizeof(double) endl; return 0; } 输出: 0012FF60 0012FF68 sizeof(double)=8 3.4.3 指针变量的运算 自减运算 格式:指针变量--; 功能是指针变量指向上一元素 指针变量 = 指针变量 - sizeof(指针变量类型) ++和—运算符既可前置,也可后置。 指针变量加n运算 格式:指针变量 = 指针变量 + n; 作用:将指针变量指向下n个元素的运算,即: 指针变量 = 指针变量 + sizeof(指针变量类型) * n 3.4.3 指针变量的运算 指针变量减n运算 格式:指针变量 = 指针变量 - n; 作用:将指针变量指向上n个元素的运算,即: 指针变量 = 指针变量
文档评论(0)