第13讲 指针与一维数组
第13讲 指针与一维数组
新的概念:指针( Pointer) 指针也是一种数据类型 种特殊的数据类型,这种类型存储的是地 址 c/c++的特色 有些复杂但很实用 指针变量与指针常量 指针变量 专门存放地址数据的变量 指针常量 !一个固定的地址,例如:数组名
2 新的概念:指针(Pointer) ▪ 指针也是一种数据类型 ▪ 一种特殊的数据类型,这种类型存储的是地 址 ▪ C/c++的特色 ▪ 有些复杂但很实用 ▪ 指针变量与指针常量 ▪ 指针变量 ▪ 专门存放地址数据的变量 ▪ 指针常量 ▪ 指一个固定的地址,例如:数组名
两种寻址方式 如何读写内存中的数据? 通过变量的地址访问变 量所在的存储单元 两种寻址方式 直接(寻址)访问 直接按变量地址来存 东西 房间1 取变量内容的访问方 的钥匙 式 房间1房间2 间接(寻址)访问 直接寻址间接寻址 通过指针变量来间接 存取它所指向的变量 的访问方式
3 两种寻址方式 ▪ 如何读写内存中的数据? ▪ 通过变量的地址访问变 量所在的存储单元 ▪ 两种寻址方式 ▪ 直接(寻址)访问 ▪ 直接按变量地址来存 取变量内容的访问方 式 ▪ 间接(寻址)访问 ▪ 通过指针变量来间接 存取它所指向的变量 的访问方式 房间1 东西 房间2 房间1 的钥匙 直接寻址 间接寻址
重点:直接寻址与间接寻址的表示 数据类型:int*(指向 直接寻址整型变量的指针) 变量名 ti:|·变量名称:P 变量的初值:&i i=3 含义:向系统申请一个3变量i 间接寻址动态区的内存空间,用 来存储整型指针变量p的 初值&i,即将p指向了变 量i。 int 3010200变量p p=&i:(·通过p这种形式,实现对变 量i间接引用。 =3 如果能直接寻址那当然就不用间接寻址了 但有时,只能用间接寻址的方法解决问题
4 ▪间接寻址访问: int i; int *p; p=&i; *p=3; 重点:直接寻址与间接寻址的表示 ▪ 直接寻址访问: int i; i=3; 2000 0 ┇ 变量 i ┇ 3010 变量pi 地址 数据 变量名 •如果能直接寻址那当然就不用间接寻址了, 但有时,只能用间接寻址的方法解决问题 ③ ▪ 数据类型:int *(指向 整型变量的指针) ▪ 变量名称:p ▪ 变量的初值:&i ▪ 含义:向系统申请一个 动态区的内存空间,用 来存储整型指针变量p的 初值&i,即将p指向了变 量i。 ▪ 通过*p这种形式,实现对变 量i的间接引用。 ② ① 2000 3
&与*操作符 &用来取变量的地*用来取指针指向地 ■inti,*p 址的内容 p=&i; *p=0; int *p, a[19 ■int*p,a[ p=&a[0] 搞清楚下边的两个赋值 inti,*p=&i;/*对指针变量赋值*/ *p=1;/*对指针变量引用的变量工赋值*/
5 &与*操作符 ▪ &用来取变量的地址 ▪ int i, *p; p = &i; ▪ int *p, a[10]; p = a; ▪ int *p, a[10]; p = &a[0]; ▪ *用来取指针指向地 址的内容 ▪ *p = 0; ▪搞清楚下边的两个赋值 ▪int i, *p=&i;/*对指针变量赋值*/ ▪*p=1;/*对指针变量引用的变量I赋值*/