大学C语言基础自学课件--第10章.ppt内容提要:
★指针的概念
★指针变量
★指针与数组
★指针与字符串
★指针与函数
★返回指针值的函数
★指针数组和多级指针
地址与指针的概念
变量与地址
程序中: int i;
float k;
内存中每一个字节具有唯一一个编码-----地址
…...
…...
2000
2001
2002
2005
内存
0
2003
i
k
编译或函数调用时为其分配内存单元
变量是对程序中数据
存储空间的抽象
…...
…...
2000
2004
2006
2005
整型变量i
10
变量i_pointer
2001
2002
2003
指针与指针变量
指针:一个变量的地址称为该变量的指针。
指针变量:专门存放变量地址的变量叫指针变量
2000
指针
指针变量
变量的内容
变量的地址
指针变量
变量
变量地址(指针)
变量值
指向
地址存入
指针变量
我们称,指针变量i_pointer指向整型变量i。
直接访问与间接访问
直接访问:按变量地址存取变量值
间接访问:通过存放变量地址的变量去访问变量
例 i=3; ----直接访问
指针变量
…...
…...
2000
2004
2006
2005
整型变量i
10
变量i_pointer
2001
2002
2003
2000
3
例*i_pointer=20; ---间接访问
20
如何定义i_pointer?
如何获取变量i的地址?
如何通过i_pointer访问i?
…...
…...
2000
2004
2006
2005
整型变量i
10
变量i_pointer
2001
2002
2003
&与*运算符 P222 §
含义
含义: 取变量的地址(取地址运算符)
单目运算符
优先级: 2
结合性:自右向左
含义: 取指针所指向变量的内容(指针运算符)
单目运算符
优先级: 2
结合性:自右向左
两者关系:互为逆运算
理解
指针变量
2000
i_pointer-----指针变量,它的内容是地址量
*i_pointer----指针的目标变量,它的内容是数据
&i_pointer---指针变量占用内存的地址
2000
10
i_pointer
*i_pointer
&i_pointer
i
i_pointer &i &(*i_pointer)
i *i_pointer *(&i)
i_pointer = &i = &(*i_pointer)
i = *i_pointer = *(&i)
&i表示变量i所占据的内存空间的首地址;
*i_pointer表示指针变量i_pointer所指向的内存中的数据。
指针变量
…...
…...
2000
2004
2006
2005
整型变量i
10
变量i_pointer
2001
2002
2003
2000
整型变量k
例 k=i; --直接访问
k=*i_pointer; --间接访问
10
例 k=i;
k=*i_pointer;
指针变量
指针变量与其所指向的变量之间的关系
指针变量的定义 P221 §
一般形式: [存储类型] 基类型*指针名;
3
变量i
2000
i_pointer
*i_pointer
i
*i_pointer
&i
i_pointer
i=3;
*i_pointer=3
3
变量i
2000
i_pointer
*i_pointer
i
*i_pointer
&i
i_pointer
i=3;
*i_pointer=3
合法标识符
指针变量本身的存储类型
指针的目标变量的数据类型
表示定义指针变量
不是‘*’运算符
例 int *p1,*p2;
float *q ;
static char *name;
注意:P222
1、int *p1, *p2; 与 int *p1, p2;
2、指针变量名是p1,p2 ,不是*p1,*p2
3、指针变量只能指向定义时所规定类型的变量
4、指针变量定义后,变量值不确定,应用前必须先赋值
指针变量的初始化 P222
一般形式:[存储类型] 基类型*指针名=初始地址值;
赋给指针变量,
不是赋给目标变量
例 int i;
int *p=&i;
变量必须已说明过
类型应一致
例 int *p=&i;
int i;
例 int i;
int *p=&i;
int *q=p;
用已初始化指针变量作初值
例 main( )
{ in
大学C语言基础自学课件--第10章 来自淘豆网m.daumloan.com转载请标明出处.