第15讲指针定义和引用 、指针和地址的概念 1.内存与地址 2.指针和指针变量 3对内存单元的访问方式 指针的运算 1指针变量的定义 2指针运算符 3指针变量的初始化 4指针的运算 、指针变量作为函数参数
第15讲 指针定义和引用 一、指针和地址的概念 1. 内存与地址 2. 指针和指针变量 3. 对内存单元的访问方式 二、指针的运算 1.指针变量的定义 2.指针运算符 3.指针变量的初始化 4.指针的运算 三、指针变量作为函数参数
、指针和地址的概念 1.内存与地址 存储单元:存放一个字节数据的存储器。 存储单元的内容:存储单元内的数据。 内存地址:存储单元的编号
1. 内存与地址 ➢存储单元:存放一个字节数据的存储器。 ➢存储单元的内容:存储单元内的数据。 ➢内存地址:存储单元的编号。 一、指针和地址的概念
例 n X 2000 10 2字节 char y float z 2002 a 1字节 2003 X=10 9.8 4字节 y=a i z=98 2007
··· ··· 2007 2003 2002 2000 x = 10 ; y = ‘a’ ; z = 9.8 ; 2字节 1字节 4字节 a 10 9.8 int x ; char y ; float z ; 例:
2.指针和指针变量 指针:就是变量的内存地址,是一个常量。 指针变量:就是存放变量内存地址的变量 变量的指针:变量的地址 当把某个变量x的地址存入指针变量p后, 我们就说这个指针变量p的指针指向该变量x 指针变量p 变量x 2000 指向 10 2000
2. 指针和指针变量 ➢指针:就是变量的内存地址,是一个常量。 ➢指针变量:就是存放变量内存地址的变量。 ➢变量的指针:变量的地址。 当把某个变量x的地址存入指针变量p后, 我们就说这个指针变量p的指针指向该变量x。 指针变量 p 指向 2000 2000 变量 x 10
3对内存单元的访问方式: 直接访问方式: 通过变量名访问。 间接访问方式: 通过变量的指针访问
3.对内存单元的访问方式: ➢直接访问方式: 通过变量名访问。 ➢间接访问方式: 通过变量的指针访问
二、指针的运算 1指针变量的定义 >格式: 类型说明符*指针变量名1,…; 例:int*p1,*p2: 说明: 1)指针变量的名是p1和p2 若写成:int*p1,p2; 则p2被定义为整型变量而非整型指针变量
1.指针变量的定义 ➢格式: 类型说明符 *指针变量名1,··· ; 例: int *p1, *p2; ➢说明: 1)指针变量的名是p1和p2 若写成: int *p1, p2; 则p2被定义为整型变量而非整型指针变量。 二、指针的运算
格式: 类型说明符*指针变量名1 例:int*p1,*p2: 说明 2)指针变量的类型是定义时所规定的指向变 量的类型,如p1、p2只能指向整型变量,不 能指向实型和字符型变量
➢格式: 类型说明符 *指针变量名1,···; 例: int *p1, *p2; ➢说明: 2)指针变量的类型是定义时所规定的指向变 量的类型,如p1、p2只能指向整型变量,不 能指向实型和字符型变量
格式: 类型说明符*指针变量名1,…; 例:int中p1,*p2; 说明: 3)指针变量的值表示的是它所指向变量的 地址。若一个指针变量为0(NULL,表示 该指针为空,说明它没有指向任何变量(存 储单元)
➢格式: 类型说明符 *指针变量名1,···; 例: int *p1, *p2; ➢说明: 3)指针变量的值表示的是它所指向变量的 地址。若一个指针变量为0 (NULL),表示 该指针为空,说明它没有指向任何变量(存 储单元)
2指针运算符 >取地址运算符 指针运算符—“*
2.指针运算符 ➢取地址运算符 ── “&” ➢指针运算符 ── “*
取地址运算符 & >作用:取变量的地址。 例:inti,*p1; pI=&i 注意:不能对常量、表达式进行”&”运算。 例:下列运算为非法的。 p2=68: p3=&(i+1);
取地址运算符──“&” ➢作用:取变量的地址。 例:int i , *p1 ; p1=&i ; ➢ 注意: 不能对常量、表达式进行”&”运算。 例:下列运算为非法的。 p2=&68; p3=&( i + 1 );