《VISUAL?C++程序设计基础》(PPT教学课件)第六章 指针与数组

第六章指针与数组 61指针与地址 6.6排序与查找 62this指针 6.7指针数组 63数组与指针 68函数指针及其应用 6.4多维数组与指针 6.9复杂指针及其他 6.5模板 6.10 Windows对象句柄
第六章 指针与数组 6.1 指针与地址 6.5 模板 6.4 多维数组与指针 6.3 数组与指针 6.2 this 指针 6.10 Windows对象句柄 6.9 复杂指针及其他 6.8 函数指针及其应用 6.7 指针数组 6.6 排序与查找

61指针島地址圆 6.1.1指针的概念 6.1.2指针变量的赋值、初始化与简单应用 D
6.1 指针与地址 6.1.1指针的概念 6.1.2 指针变量的赋值、初始化与简单应用

61.1指针的攏念 按变量的地址直接存取变量的方法称为“直接访问”方式。存贮 变量的内存空间的首地址称为该变量的地址。 如果将一个变量的地址放在另一个变量中,则存放地址的变量称 为指针变量。这样存取变量,也可以间接的由指针变量取得该变 量的地址进行,称为“间接访问”方式。由于指针变量中的值是 另一个变量的地址,我们习惯上形象地称为指针变量指向该变量。 指针变量中的值也简称为指针,所以指针就是地址 指针类型可以按它指向的变量的类型区分。 指针类型变量定义语句格式如下: 类型*变量名; 这里的*是一个定义变量为指针的说明符,而不是指针变量的 部分
6.1.1 指针的概念 按变量的地址直接存取变量的方法称为“直接访问”方式。存贮 变量的内存空间的首地址称为该变量的地址。 如果将一个变量的地址放在另一个变量中,则存放地址的变量称 为指针变量。这样存取变量,也可以间接的由指针变量取得该变 量的地址进行,称为“间接访问”方式。由于指针变量中的值是 另一个变量的地址,我们习惯上形象地称为指针变量指向该变量。 指针变量中的值也简称为指针,所以指针就是地址。 指针类型可以按它指向的变量的类型区分。 指针类型变量定义语句格式如下: 类型 *变量名; 这里的*是一个定义变量为指针的说明符,而不是指针变量的一 部分

612指针变量的赋值、初始化与简单用 &”取地址运算符。作用于内存中一个可寻址的 数据(如:变量,对象和数组元素等等),操作 的结果是获得该数据的地址。 “*”间接引用( dereference)运算符,作用于 个指针类型的变量,访问该指针所指向的内存 教据 D
6.1.2 指针变量的赋值、初始化与简单应用 “&”取地址运算符,作用于内存中一个可寻址的 数据(如:变量,对象和数组元素等等),操作 的结果是获得该数据的地址。 “*”间接引用(dereference)运算符,作用于 一个指针类型的变量,访问该指针所指向的内存 数据

612指针变量的赋值、初始牝蜀简单泫用 例61】指针赋值实例: age1 include 18 using namespace std p age void main(t int age1=18, age2=20, *p_agei age2 page=8agel;/情况1,见图61 20 cout<< age of wang ping is"<<*p age<<endl; p_age=&age2;//情况2,指针改指另一变量,见图61 cout<< age of zhang ling is" <<*p age<<endi D
6.1.2 指针变量的赋值、初始化与简单应用 【例6.1】指针赋值实例: #include using namespace std; void main(){ int age1=18,age2=20,*p_age; p_age=&age1; //情况1,见图6.1 cout<<"age of wang ping is"<<*p_age<<endl; p_age=&age2; //情况2,指针改指另一变量,见图6.1 cout<<"age of zhang ling is"<<*p_age<<endl; 20 age2 18 age1 p_age

612指针变量的赋值、初始化蜀简单泫用 请看以下几个指针使用的例子: int*p a,k=5; p=&k //合法,p指向k g=p /合法,p和q都指向k p=0 /合法,p悬空 p=&5 /非法,常量不可寻址 p=(int*)0x2700//不允许直接干预内存分配 D
6.1.2 指针变量的赋值、初始化与简单应用 请看以下几个指针使用的例子: int *p,*q,k=5; p=&k //合法,p指向k q=p //合法,p和q都指向k p=0 //合法,p悬空 p=&5 //非法,常量不可寻址 p=(int *)0x2700 //不允许直接干预内存分配

6this指针 在上一小节,我们讨论了指向对象和结构变量的指针。 当我们在对象的外部访问该对象的公有成员时,必须指 明是哪一个对象。但是当我们用对象的成员函数来访问 本对象的成员时,在成员函数中只要给出成员名就可以 实现对该对象成员的访问。再进一步可用同一个类创建 很多个对象,但它们共用同一份成员函数的拷贝。既然 是同一份拷贝,那么成员函数又怎么知道是取哪一个对 象的成员数据呢?其实当调用一个成员函数时,系统自 动产生一个隐藏的指针,这个指针称为this指针,它始 终指向产生这个调用的对象,并将该指针作为一个参数 自动传递给该成员函数。这就是说,成员操作符总是要 使用的,只不过在对象内是隐式的,而在对象外是显式 的。即在对象内省略了this指针
6.2 this 指针 在上一小节,我们讨论了指向对象和结构变量的指针。 当我们在对象的外部访问该对象的公有成员时,必须指 明是哪一个对象。但是当我们用对象的成员函数来访问 本对象的成员时,在成员函数中只要给出成员名就可以 实现对该对象成员的访问。再进一步可用同一个类创建 很多个对象,但它们共用同一份成员函数的拷贝。既然 是同一份拷贝,那么成员函数又怎么知道是取哪一个对 象的成员数据呢?其实当调用一个成员函数时,系统自 动产生一个隐藏的指针,这个指针称为this指针,它始 终指向产生这个调用的对象,并将该指针作为一个参数 自动传递给该成员函数。这就是说,成员操作符总是要 使用的,只不过在对象内是隐式的,而在对象外是显式 的。即在对象内省略了this指针

62this指针 实际上编译器是这样实现this指针的 1.改变类成员函数的定义,用附加参数this指针来定义每个成员函数。如: void Goods: Register Goods(Goods*this, char nam, int amount, float price)t strcpy ( this->Name, name);this->Amount=amount; this->price=pricei } 2.每个类成员函数的调用,加上一个附加的实参被调用对象的地址。 如 Car1. Register Goods( String, number, pr )i 改变为: Register Goods(& Car1, String, number, pr) D
6.2 this 指针 实际上编译器是这样实现this指针的 1.改变类成员函数的定义,用附加参数this指针来定义每个成员函数。如: void Cgoods::Register Goods(Cgoods*this,char*nam,int amount,float price){ strcpy(this->Name,name);this->Amount=amount; this->price=price; } 2.每个类成员函数的调用,加上一个附加的实参——被调用对象的地址。 如: Car1.RegisterGoods ( String , number , pr ); 改变为: RegisterGoods ( &Car1 , String , number , pr);

63数组与指针 6.3.1数组与数组元素 6.3.2数组名、指针和指针运算 6.3.3指针、数组名作为函数参数 6.3.4字符串处理 D
6.3 数组与指针 6. 3. 1 数组与数组元素 6. 3. 3 指针、数组名作为函数参数 6. 3. 2 数组名、指针和指针运算 6. 3. 4 字符串处理

631数组与飘组元素 数组的应用是非常广泛的,在数据结构中称为线性表(list),下 面我们看一个对数组最简单的操作。 【例63】找出一个整型数组各数组元素中的最大数和最小数, 数组中的数由随机数函数 rando产生 程序EX63cpp D
6.3.1 数组与数组元素 数组的应用是非常广泛的,在数据结构中称为线性表(list),下 面我们看一个对数组最简单的操作。 【例 6.3】找出一个整型数组各数组元素中的最大数和最小数, 数组中的数由随机数函数 rand()产生。 程序Ex6_3.cpp
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《VISUAL C++程序设计基础》(PPT教学课件)第八章 继承与多态.ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第五章 类与对象.ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第二章 C++基础知识(课件).ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第九章 流类库和输入.ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第三章 结构化程序设计.ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第七章 动态内存分配.ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第一章 软件设计概述.ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》VHDL语言详解(蔡喜平).pdf
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第3章 VHDL 入门(蔡喜平).pdf
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》PDF电子书(共四章)(蔡喜平).pdf
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第七章 VHDL中的重载(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第六章 VHDL中属性的描述及定义语句(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第五章 VHDL的库、程序包和配置(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第四章 VHDL的基本描述语句(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第四章 VHDL的基本描述语句(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第四章 VHDL的基本描述语句(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第三章 VHDL的基本元素(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第二章 VHDL的基本模型结构(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第十章 数字系统设计范例(蔡喜平).ppt
- 黑龙江大学物理科学与技术学院:《EDA教程——EDA技术及应用》第八章 综合(Synthesis)(蔡喜平).ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第十一章 标准模板库(STL).ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第十章 异常处理.ppt
- 《VISUAL C++程序设计基础》(PPT教学课件)第四章 函数.ppt
- 《实用网络配置指南》参考书籍PDF电子书(初级篇).doc
- 清华大学:《C语言》课程教学课件(PPT讲稿)第十章 指针.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第十一章 结构体与共用体.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第十二章 位运算.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第十三章 文件.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第十四章 常见错误和程序调试.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第一章 C语言概述.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第二章 程序的灵魂一算法.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第三章 数据类型、运算符与表达式.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第四章 最简单的C程序设计.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第五章 选择结构程序设计.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第六章 循环控制.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第七章 数组.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第八章 函数.ppt
- 清华大学:《C语言》课程教学课件(PPT讲稿)第九章 预处理命令.ppt
- 《C语言》课程教学课件(PPT讲稿)第七章 编译预处理.ppt
- Problem A(文献资料)A Careful Approach.pdf