《C++学习Lab1章节》由会员分享,可在线阅读,更多相关《C++学习Lab1章节(54页珍藏版)》请在金锄头文库上搜索。
1、高级语言程序设计2-2 (实验一),课程安排,课时安排 每周4课时,3个小时 成绩评定 期末笔试 成绩(50%) 上机考试 成绩(30%) 出勤&作业 成绩(20%),2,本次目标,掌握指针的含义 掌握指针的用法,3,作业,示范题一(p153) 示范题二(p155) 实践题二(p163) 实践题三(p164),4,5,回顾,访问变量,内存单元由操作系统按字节编号,称为地址 一个对象占有内存的第一个字节的地址称为对象的地址 可以通过对象名或地址访问对象 数据对象有两种访问形式读和写操作,访问变量,int a 0X0066FDF4,double b 0X0066FDEC,例如,有说明: int a
2、 ; double b ;,内存分配,访问变量,int a 0X0066FDF4,double b 0X0066FDEC,内存分配,变量a的地址,例如,有说明: int a ; double b ;,访问变量,int a 0X0066FDF4,double b 0X0066FDEC,内存分配,例如,有说明: int a ; double b ;,例如,有说明: int a ; double b ;,访问变量,int a 0X0066FDF4,double b 0X0066FDEC,内存分配,变量b的地址,例如,有说明: int a ; double b ;,访问变量,int a 0X0066F
3、DF4,double b 0X0066FDEC,内存分配,1. 名访问,对于数据单元,名访问就是操作对象的内容 访问形式分为“读”和“写”,例如: int a, b ; a = 10 ; b = 20 ; a = a + b ;,1. 名访问,对于数据单元,名访问就是操作对象的内容 访问形式分为“读”和“写”,例如: int a, b ; a = 10 ; b = 20 ; a = a + b ;,建立内存对象,1. 名访问,对于数据单元,名访问就是操作对象的内容 访问形式分为“读”和“写”,例如: int a, b ; a = 10 ; b = 20 ; a = a + b ;,写操作,10
4、,1. 名访问,对于数据单元,名访问就是操作对象的内容 访问形式分为“读”和“写”,例如: int a, b ; a = 10 ; b = 20 ; a = a + b ;,写操作,10,20,1. 名访问,对于数据单元,名访问就是操作对象的内容 访问形式分为“读”和“写”,例如: int a, b ; a = 10 ; b = 20 ; a = a + b ;,读操作,10,20,+,1. 名访问,对于数据单元,名访问就是操作对象的内容 访问形式分为“读”和“写”,例如: int a, b ; a = 10 ; b = 20 ; a = a + b ;,写操作,10,20,+,30,2. 地
5、址访问,程序被编译后,系统对已声明对象保存一张名表,登记对象的属性 C+允许通过名或地址(并根据类型)访问对象,例如,有说明: double b ;,名字b所标识的 浮点型对象,2. 地址访问,程序被编译后,系统对已声明对象保存一张名表,登记对象的属性 C+允许通过名或地址(并根据类型)访问对象,例如,有说明: double b ;,地址0X0066FDEC 所指的浮点型对象,2. 地址访问,程序被编译后,系统对已声明对象保存一张名表,登记对象的属性 C+允许通过名或地址(并根据类型)访问对象,例如,有说明: double b ;,int a ;,名字a所标识的 整型对象,2. 地址访问,程序
6、被编译后,系统对已声明对象保存一张名表,登记对象的属性 C+允许通过名或地址(并根据类型)访问对象,例如,有说明: double b ;,int a ;,地址0X0066FDF4 所指的整型对象,2. 地址访问,程序被编译后,系统对已声明对象保存一张名表,登记对象的属性 C+允许通过名或地址(并根据类型)访问对象,例如,有说明: double b ;,取对象b的地址: &b 访问对象b: b *(&b),取对象a的地址: &a 访问对象a: a *(&a),取址运算符,间址运算符,2. 地址访问,例 测试对变量、常量的不同访问形式,#include void main() int a = 45
7、1 ; const int MAX = 1000 ; cout a endl ; cout ( ,2. 地址访问,例 测试对变量、常量的不同访问形式,#include void main() int a = 451 ; const int MAX = 1000 ; cout a endl ; cout ( ,输出变量的值,2. 地址访问,例 测试对变量、常量的不同访问形式,#include void main() int a = 451 ; const int MAX = 1000 ; cout a endl ; cout ( ,输出变量的地址,2. 地址访问,例 测试对变量、常量的不同访问形
8、式,#include void main() int a = 451 ; const int MAX = 1000 ; cout a endl ; cout ( ,输出变量的值,2. 地址访问,例 测试对变量、常量的不同访问形式,#include void main() int a = 451 ; const int MAX = 1000 ; cout a endl ; cout ( ,输出常量的地址,2. 地址访问,例 测试对变量、常量的不同访问形式,#include void main() int a = 451 ; const int MAX = 1000 ; cout a endl ;
9、 cout ( ,输出常量的值,2. 地址访问,例 测试对变量、常量的不同访问形式,#include void main() int a = 451 ; const int MAX = 1000 ; cout a endl ; cout ( ,输出常量的值,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,例如: int a , b ; int *p1 , *p2 ; p1 = ,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int
10、 *p1 , *p2 ; p1 = ,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,
11、int *p1 0X0066FDE0,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2
12、0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,*p1,*p1 指针p1所指的对象,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,0X0066FDF0,*p1,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X
13、0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,*p1,*p2,*p2 指针p2所指的对象,0X0066FDF0,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,0X0066FDF0
14、,10,*p1,*p2,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,0X0066FDF0,10,*p1,*p2,20,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p
15、2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,0X0066FDF0,10,*p1,*p2,20,+,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,0X0066FDF0,30,*p1,*p2,20,+,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int a , b ; int *p1 , *p2 ; p1 = ,int *p2 0X0066FDE4,int *p1 0X0066FDE0,0X0066FDF4,0X0066FDF0,30,*p1,*p2,20,间址访问 读出变量 p1 的地址值 查找该地址的存储单元 用关联类型解释并读出数据,3. 指针变量与间址访问,指针类型变量能够存放对象地址的变量,简称“指针变量”,int a 0X0066FDF4,int b 0X0066FDF0,例如: int