西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第6章 指针与字符串

第6章指针与字符串 H 第6章指针与字符串 61指针的概念 6,2指针型变量 63指针与数组 64指针与函数 65指针与类、对象 6,7动态内存分配与new和 delete运算符 6.8 string 类 BACK
第6章 指针与字符串 第6章 指针与字符串 6.1 指针的概念 6.2 指针型变量 6.3 指针与数组 6.4 指针与函数 6.5 指针与类、对象 6.7 动态内存分配与new和delete运算符 6.8 string类

第6章指针与字符串 H 61指针的概念 指针既是C++语言学习中的难点又是重点,要掌握 C++语言的精髓,必须学会熟练使用指针。本节先引 入指针的概念 为了说明什么是指针,必须弄清楚数据在内存中 是如何存储的,又是如何读取的。如果在程序中定义 了一个变量,在编译时就给这个变量分配内存单元
第6章 指针与字符串 6.1 指针的概念 指针既是C++语言学习中的难点又是重点,要掌握 C++语言的精髓,必须学会熟练使用指针。本节先引 入指针的概念。 为了说明什么是指针,必须弄清楚数据在内存中 是如何存储的,又是如何读取的。如果在程序中定义 了一个变量,在编译时就给这个变量分配内存单元

第6章指针与字符串 H 系统根据程序中定义的变量类型,分配一定长度的空 间。例如,许多计算机系统对整型变量分配两个字节, 对实型变量分配四个字节,对字符型变量分配一个字 节 内存区的每一个字节(即单元)有一个编号, 这就是“地址”,它相当于旅馆中的房间号。在地址 所标识的单元中存放数据,这相当于旅馆中各个房间 中住旅客一样
第6章 指针与字符串 系统根据程序中定义的变量类型,分配一定长度的空 间。例如,许多计算机系统对整型变量分配两个字节, 对实型变量分配四个字节,对字符型变量分配一个字 节,……。内存区的每一个字节(即单元)有一个编号, 这就是“地址” ,它相当于旅馆中的房间号。在地址 所标识的单元中存放数据,这相当于旅馆中各个房间 中住旅客一样

第6章指针与字符串 H 在此,务必弄清楚一个内存单元的地址与内存单元的 内容这两个概念的区别。如图6-1所示,假设程序已定 义了三个整型变量i、j、k,编译时系统分配2000和 2001两个字节给变量i,2002、2003字节给j,2004、 2005给k。在内存中已没有i、j、k这些变量名了,对变 量值的存取都是通过地址进行的
第6章 指针与字符串 在此,务必弄清楚一个内存单元的地址与内存单元的 内容这两个概念的区别。如图6-1所示,假设程序已定 义了三个整型变量i、j、k,编译时系统分配2000和 2001两个字节给变量i,2002、2003字节给j,2004、 2005给k。在内存中已没有i、j、k这些变量名了,对变 量值的存取都是通过地址进行的

第6章指针与字符串 H 2000 3 变量i 2002 6 变量j 2004 9 变量k 3030 2000 指针变量 ointer 图6-1内存单元分配示意
第6章 指针与字符串 图6-1 内存单元分配示意

第6章指针与字符串 H 还可以采用另一种称之为“间接访问”的方式。这类 似于在程序中定义整型、实型、字符等变量,也可以 定义这样一种特殊的变量,它是用来存放地址的,即 可以将变量的地址存放在另一个内存单元中。假设我 们定义了变量ⅰ pointer是存放整型变量的地址的,它被 分配为3030、3031字节单元。可以通过下面的语句将i 的地址存放到 I pointer中: 1 pointer=&i 这时, 1 pointer的值就是2000,即变量i所占用单元 的起始地址
第6章 指针与字符串 还可以采用另一种称之为“间接访问”的方式。这类 似于在程序中定义整型、实型、字符等变量,也可以 定义这样一种特殊的变量,它是用来存放地址的,即 可以将变量i的地址存放在另一个内存单元中。假设我 们定义了变量i_pointer是存放整型变量的地址的,它被 分配为3030、3031字节单元。可以通过下面的语句将i 的地址存放到i_pointer中: i_pointer=&i; 这时,i_pointer的值就是2000,即变量i所占用单元 的起始地址

第6章指针与字符串 H 要存取变量i的值,也可以采用间接方式:先找到 存放“i的地址”的单元地址(3030、3031),从中获得i 的起始地址(2000),然后从2000、2001字节中取出i 的值(3)。 简而言之,指针就是指向内存中某个单元的地址 值。所有的变量、数组、对象都是保存在内存中的。 凡是保存在内存中的信息,必须知道它在内存中的位 置。在计算机中,引用了“地址”这个词来代表内存 的某个位置。内存以字节为单位编址,称为内存地址。 BACK
第6章 指针与字符串 要存取变量i的值,也可以采用间接方式:先找到 存放“i的地址”的单元地址(3030、3031),从中获得i 的起始地址(2000),然后从2000、2001字节中取出i 的值(3)。 简而言之,指针就是指向内存中某个单元的地址 值。所有的变量、数组、对象都是保存在内存中的。 凡是保存在内存中的信息,必须知道它在内存中的位 置。在计算机中,引用了“地址”这个词来代表内存 的某个位置。内存以字节为单位编址,称为内存地址

第6章指针与字符串 H 62指针型变量 62.1指针型变量的声明 在C+语言中,任何一种数据类型都有对应的指针 类型,甚至指针类型本身也有指针类型。要声明一种 数据类型的指针型变量,必须在声明变量时将“*”号 加在数据类型的后面。定义指针变量的一般形式如下 *指针变量名
第6章 指针与字符串 6.2 指针型变量 6.2.1指针型变量的声明 在C++语言中,任何一种数据类型都有对应的指针 类型,甚至指针类型本身也有指针类型。要声明一种 数据类型的指针型变量,必须在声明变量时将“*”号 加在数据类型的后面。定义指针变量的一般形式如下: *指针变量名

第6章指针与字符串 H 定义中的“*”表示所定义的变量是一个指针变量, 以示与其它变量的区别。指针变量名的命名应符合标 识符的命名规则。指针变量的值是另一变量的指针(即 首地址)。定义中的数据类型是指针变量所指变量的数 据类型 注意,一个指针变量只能指向定义所指定数据类 型的变量,即存放定乂所指定数据类型的变量的地址, 因此,指针变量所存放的地址是一个具有指定数据类 型的地址。例如
第6章 指针与字符串 定义中的“*”表示所定义的变量是一个指针变量, 以示与其它变量的区别。指针变量名的命名应符合标 识符的命名规则。指针变量的值是另一变量的指针(即 首地址)。定义中的数据类型是指针变量所指变量的数 据类型。 注意,一个指针变量只能指向定义所指定数据类 型的变量,即存放定义所指定数据类型的变量的地址, 因此,指针变量所存放的地址是一个具有指定数据类 型的地址。例如:

第6章指针与字符串 H int*pnNumber / inUmber是用来保存一个指向int型 变量的指针的指针型变量 flad* pfrealNumber;/ pfRealNumber是用来保存一个指向 float型变量的指针的指针型变量 BOOL* reSult;/ reSult是保存一个指向int型变量 的指针的指针型变量,注意BOOL型 与jint型的共用特性
第6章 指针与字符串 int*pnNumber; //pnNumber是用来保存一个指向int型 变量的指针的指针型变量 f1oad*pfRealNumber; //pfRealNumber是用来保存一个指向 float型变量的指针的指针型变量 BOOL*pbResult; //pbResult是保存一个指向int型变量 的指针的指针型变量,注意BOOL型 //与int型的共用特性
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第5章 程序结构.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第4章 类和对象.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第3章 数组.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第2章 函数.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第1章 C++简单程序设计.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第11章 Visual C++环境下Windows.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第10章 异常处理.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)目录 The C++ programming language(主讲:揣锦华).ppt
- 《软件形式化方法》期末考试模拟试题一.doc
- 《高质量C++编程指南》PDF电子资料(2001,v1.0,共十一章,林锐).pdf
- 《数据库自测试题》模拟试题一(附答案).doc
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》谐振电路.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》分析习题.doc
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第11章 直流电源.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》复习.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》习题.doc
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第8章 集成运算放大器.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第7章 负反馈放大电路.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第6章 放大电路分析基础(1/3).ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第6章 放大电路分析基础(3/3).ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第7章 继承与派生.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第8章 多态性.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第9章 流类库与输入输出.ppt
- 深圳职业技术学院:《C语言程序设计》第一单元 C 语言的数据类型、运算符和表达式(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十单元 链表(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(1):文本文件的操作(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(2):二进制文件的操作(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(3):文件的定位操作和随即读写(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第二单元:顺序结构程序设计(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第三单元:选择结构程序设计(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第四单元:循环结构程序设计(1)(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第四单元(2):循环结构编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(1):数组的基础内容(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(2):数组的应用(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(3):数组的编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(4):二维数值型数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(5):字符型数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(6):字符数组的编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(7):二维字符数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第 5 单元(8):数组编程总结(乌云高娃).pdf