- 16
- 0
- 约2.45万字
- 约 29页
- 2018-04-03 发布于河南
- 举报
C++程序设计教程第6章.pdf
第6章 指 针 教学提示:指针的存在使得 C++非常强大和灵活,利用指针可以直接进行内存访问,
能够实现动态地分配内存,可以有效地表示和访问复杂的数据结构,可以提高某些程序的
执行效率等等。正是由于指针的灵活性使得初学者往往认为指针很难理解和掌握,但对一
个程序员来说,C++ 的指针却充满了无穷的魅力,如果没有学好指针就等于还没有掌握
C++。 这一章我们就来讨论指针的定义、指针变量的引用,同时介绍指针和数组及字符串的
关系,在最后介绍以下两个难点:指向函数的指针和指向指针的指针。 学习目标: 掌握指针变量的定义格式及引用方法; 掌握指针变量的简单运算; 掌握用 new 与 delete 运算符动态分配与回收内存空间的方法; 掌握用指针变量处理一维数组与字符串数组的问题; 掌握用指针变量、数组作为函数参数时函数的使用方法; 了解指向函数的指针和指向指针的指针的使用方法。 6.1 地址和指针 在 C++ 中,与指针密切相关的一个概念是地址。计算机程序在执行时需要内存储器来
存储数据和代码,计算机的内存储器被分割成许多相同的连续存储单元,相应每个存储单
元都有一个唯一的编号,称之为地址。它就相当 存储地址 存储内容 变量
于每个房间的门牌号,用来区分不同的房间,计
算机就是通过这种地址编号方式来存取内存中的 … … …
数据的。如图 6.1 所示为内存结构示意图。 … … … 在图 6.1 中,每一行代表一个存储单元,一 2000 3 i
般以一个整型数的大小为一个存储单位,常为 2 2002 4 j
字节。在这里请首先务必弄清一个存储单元的存 2004 5 k
储地址与存储内容这两个概念的区别。假设程序 … … …
已定义了3 个整型变量 i、j 、k ,编译时系统分配 3010 2000 p (指针变量)
2000 和 2001 两个字节给变量 i,2002 和 2003 字 … … …
节给j ,2004 、2005 给 k 。程序运行时,在内存中 图 6.1 内存结构示意图
已没有i、j 、k 这些变量名,编译器已将其转化为
一个符号对应表,在表内,变量的标识符与存储地址一一对应,运行程序时,对变量值的
存取都是通过地址进行的。 第 6 章 指针 ·149 · 例如:cout i; 计算机是这样执行的:首先根据变量名与地址的对应关系,找到变量 i 的地址 2000 ,
然后根据 i 的数据类型——整型,从由地址为2000 开始的存储内容中取出两个字节的数据 即变量的值 3 ,最后把它输出。 所谓指针就是变量、数组、函数等的存储地址。 指针变量就是用于存放指针的变量。引入指针变量能够对变量的值采用另一种方式进
行访问,我们称直接按变量地址存取变量值的方式为直接访问方式;而将变量的地址存放
在另一个变量 即指针变量 中,再通过指针变量来存 存储地址 存储内容 变量
取变量值的方式为间接访问方式。这里请注意,指 … … …
针变量同样是一个变量,只是其存储内容较特殊—— … … …
地址。有时为叙述方便,常常不严格区分指针变量和 3 i
指针的不同。本章将看到,指针变量可以存储各类 4 j
标识符的地址,包括变量、数组、函数、对象,甚 5 k
至是指针。在程序运行过程中,变量的地址往往是 … …
编译器随机分配的,不要过于关心某变量的地址是多 p 指针变量 少,对程序员来说,更喜欢一个新的词汇:指向。
如果一个变量、数组、函数等的地址被存储在一个指 … … …
针变量中,就称这个指针变量指向那个变量、数组或 图 6.2 “指向”示意图
函数。可以通过图 6.1 和图 6.2 来慢慢理解,这里假设 p 是一个指针变量,它存储的数据是
变量 i 的地址,我们说指针变量p 指向整型变量 i,也可不严格地说p 指向 i 。 6.2 变量的指针和指向变量的指针变量
6.2.1 指针变量的定义 C++规定,指针变量必须先定义后引用,定义一个指针变量的一般形式为: * ; 例如: int *pi; //pi 是一个指向 int 型变量的指针变量 float *pl; //pl是一个指向 float 型变量的指针变量 char *pc; //pc是一个指向 char 型变量的指针变量 char *pa [3]; //pa 是一个指向一维数组的指针变量 int *pf ; //pf 是一个指向函数的指针变量,该函数返回值为 int 型 int **pp; //pp 是一个指向指针的指针变量 指针变量也可以与普通变量一起定义,例如: float a,b,*f; 上面同时定义了两个 float 类型变量和一个指向 float 类型变量的指针
您可能关注的文档
- AAN036e_Paints_and_Coatings.pdf
- AA_P-DP_1624_1.0_Process_Data_Sheet_--_Feed_Gas_Cooler__unshifted_.pdf
- ABAQUS connector用法.pdf
- ABAQUS_connector用法.pdf
- ABB Control Builder V2_1.pdf
- ABB(S4C IRB) 机器人操作培训说明书 完整版 .doc
- abba直线导轨样本.pdf
- abb质量流量计FCM2000+chinese+operate+manual.pdf
- Abiotic stress-inducible receptor-like kinases negatively control ABA signaling in Arabidopsis.pdf
- AC-DC医疗电源的选用标准与典型应用方案.docx
- 2026江西南昌市市场监督管理执法稽查局招聘仓库管理人员1人备考题库及一套参考答案详解.docx
- 2026江苏省常州市体育运动学校招聘排球教练1人备考题库及完整答案详解.docx
- 2026江苏苏州张家港农商银行寒假实习招募备考题库及完整答案详解一套.docx
- 2026浙江台州银行1月份招聘备考题库及完整答案详解一套.docx
- 2026江苏扬州市侨城社区(筹)公益性岗位招聘1人备考题库及完整答案详解.docx
- 2026广西桂林市象山区政府招聘编外聘用人员2人备考题库精编答案详解.docx
- 2026江苏南京江北新区退役军人服务中心招聘编外人员6人备考题库及参考答案详解1套.docx
- 2026广西玉林市博白县公安局第一次招聘警务辅助人员29人备考题库及一套完整答案详解.docx
- 2026广西玉林市福绵区樟木供销合作社招聘财务人员2人备考题库精编答案详解.docx
- 2026春季梦想靠岸招商银行西宁分行校园招聘备考题库及答案详解(新).docx
最近下载
- 地下车位租赁协议书通用版.docx VIP
- nsr621rf-d电容器保护测控装置技术使用说明书.pdf VIP
- 19G518-3_门式刚架轻型房屋_钢结构_有吊车_.docx VIP
- 2025公安大学警务硕士真题及答案.docx VIP
- 火电厂烟气脱硫工程调整试运及质量验收评定规程.PDF VIP
- 帝人芳纶应用介绍.doc VIP
- 《黄酒酿造工艺》课件.ppt VIP
- 深度解析(2026)《JBT 8521.2-2025编织吊索 安全性 第2部分:一般用途合成纤维圆形吊装带》:构筑新时代工业安全的核心支柱与前瞻指南.pptx VIP
- 2026房东直租房屋租赁合同.docx VIP
- V03英国深海控制器DSE5220模块操作說明書.pdf
原创力文档

文档评论(0)