- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch07 指针和引用课件
C++实用教程 C++实用教程 第7章 指针和引用 目录 7.1 指针的定义和操作 7.2 指针和数组 7.3 指针和函数 7.4 动态内存和void指针 7.5 引用 7.6 Josephus问题 7.1 指针的定义和操作 指针是C++最引人注目的特色,也是最难懂的概念。 由于它与内存密切相关,因此熟悉了指针之后,可以更好地操作内存来处理数据。 7.1.1 地址和指针 地址 在计算机内部,地址是内存单元的标识。 变量和内存空间 一个变量对应的内存空间可用其首地址和数据类型来唯一确定。 在程序中,变量名是变量所对应的内存空间的标识,对变量名的操作也是对其内存空间的操作。 int nNum = 258; 指针 指针是一个变量。 指针的数据类型,不是反映它存取的数据类型,而是用来确定该指针所指内存空间的大小。 指针本身存放的值必须是不同内存空间的首地址。 7.1.2 指针的定义和引用 指针的定义格式 例如:int *p1; char* p2; float * p3; 指针的描述 int* iPtr; int iCount=18; iPtr=iCount; //将地址赋给存放地址的变量(指针) 7.1.2 指针的定义和引用 指针的运算符“”和“*” “”:获取操作对象的指针 “*”:引用指针所指向的内存空间 “”和“*”运算符在逻辑(功能)上是互斥的 int * iPtr; int iCount=18; iPtr=iCount; cout*iPtrendl; //间接引用指针 7.1.2 指针的定义和引用 指针的初始化和赋值 初始化形式: 例如: int a; int * iptr = a; 注意:指针在使用前,要进行初始化。 int count; int *iPtr; *iPtr=58; //error! 指针忘了赋值比整型变量忘了赋值危险的多! [例Ex_Pointer1] 用指针将a和b两个整数按大小顺序输出 #include iostream using namespace std; int main() { int a, b; int *p1, *p2, t; cout输入两个整数:; cinab; p1 = a; p2 = b; if (*p1 *p2) { t = *p1; *p1 = *p2; *p2 = t; } cout结果为:a,bendl; return 0; } [例Ex_Pointer2] 用指针将a和b两个整数按大小顺序输出 #include iostream using namespace std; int main() { int a, b; int *p1, *p2, *t; cout输入两个整数:; cinab; p1 = a; p2 = b; if (*p1 *p2) { t = p1; p1 = p2; p2 = t; // 交换指向 } cout结果为:*p1,*p2endl; return 0; } 7.1.3 指针的算术运算 当一个指针加减一个整数值n时,实际上是将指针的指向向上(减)或向下(加)移动n个元素,因此指针加上或减去一个整数值n后,其结果仍是一个指针。 [Ex_PointerUnit] 用指针访问整型变量的每一个内存单元 #include iostream #include iomanip using namespace std; int main() { int a = 0 unsigned char *p = (unsigned char *)a; couta的地址是: coutsetiosflags(ios::uppercase)hexaendl; for (int i=0; isizeof(a); i++) { cout(unsigned long)p: (int)( *p)endl; p++; } return 0; } 7.1.4 const指针 在C++中,当用const关键字修饰指针时,可以限定指针的指向和对内存空间内容的修改,即将它们设置成常量。 限制内存空间的内容的改变 限制指针指向的改变 限制指针的指向和内存空间内容的改变 const int a=78; int c = 18, d = 28; const int *p1; p1 = a ; *p1 = 58 ; p1 = c ; *p1= 58 ; int * const p2 = c ; p2 = d ; *p2 = d ; const in
您可能关注的文档
- Better known as Mark Twain课件.ppt
- Bilirubin metabolic disordersnew课件.ppt
- Between October 5 and October 25, conducted 25-minute interviews with课件.ppt
- BICC呼叫流程具体解释课件.ppt
- beton arme2课件.ppt
- Bil 265 Lecture 1 uploaded课件.ppt
- beton arme课件.ppt
- Biomass Energy Road Map课件.ppt
- biological oxidation课件.ppt
- BioMass_Energy_I课件.ppt
文档评论(0)