77范文网 - 专业文章范例文档资料分享平台

第6章 指针

来源:网络收集 时间:2021-04-04 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

《C语言程序设计》

C语言程序设计

第6章 指针

2015/9/15

第6章 指针

《C语言程序设计》

【学习目标】理解指针的概念掌握指针的使用与基本运算

重点掌握指针与一维数组重点掌握指针作为函数的参数

2015/9/15

第6章 指针

《C语言程序设计》

C程序设计中使用指针可以: – 使程序简洁、紧凑、高效 – 有效地表示复杂的数据结构 – 动态分配内存 – 得到多于一个的函数返回值

《C语言程序设计》

第6章 指针6.1 指针与指针变量 6.2 指针与数组 6.3 指针与函数

2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量内存0 …...

6.1.1 指针的概念

内存中每个字节有一个编号-----地址 程序中: int i;

P142

2000 2004 2008

i k

float k;编译或函数调用时为其分配内存单元

变量是对程序中数据 存储空间的抽象

…...

2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

指针

6.1.1 指针的概念

2.指针与指针变量 地址 内存单元 (1)指针: 2001 所谓指针就是某个 程序实体 ( 如变量、 数组或函数等 ) 所占 用的存储单元的首地 2005 址。 例如: int i=3,j=5;float f;2009

P143

整型变量i

整型变量j

单精度变量f

2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

6.1.1 指针的概念

(2)指针变量:

专门存放变量(或其它程序实体)地址的变量。特点: 地址是一种特殊的数据类型,所以存放地址 的指针变量和存放字符型、整型、实型数据的变 量是不同类型的变量。 指针变量也需要存储单元,它本身也有地 址。

2015/9/15

第6章 指针

《C语言程序设计》

指针与指针变量 指针:地址也是数据,这类数据就是~ 指针变量:专门存放地址的变量叫~ 指针 整型变量i 200010 变量的地址 指针变量 变量地址(指针)2004 2008 2012 …... …...

变量的内容地址存入 变量iPointer 指针变量

指向 变量 变量值2000

指针变量

《C语言程序设计》

6.1 指针与指针变量

6.1.1 指针的概念

3.变量地址的获取 由于变量的存储单元是在编译时(对静态存储变 量)或程序运行时(对动态存储变量)分配的,因 此变量的地址不能人为确定,而要通过取地址运算 符&获取。例如在如下的程序段中: char c;int i;float f; scanf("%d%f%c",&i,&f,&c); 注意:由于常量和表达式没有用户可操作的内存地 址,因此&不能作用到常量或表达式上。

P144

2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

6.1.1 指针的概念

4.直接访问与间接访问 (1)直接访问:按变量名或其地址存取变量值。 例如: int i; scanf(”%d”,&i); printf(“%d\n”,i); (2)间接访问:通过指针变量(如iPointer)访

问它 指向的变量(如 i )的方式叫间接访问方式。即先 找到存放“i的地址”的变量iPointer,从中取出i的 地址(2011),然后到2011、2012两个存储单元取出i 的值。2015/9/15

P144

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

6.1.2 指针变量的定义与初始化

P144 1.指针的类型 指针也是有类型的,指针的类型又称指针的基类型, 它的类型就是它所指向的程序实体(如变量、数组) 的类型,由此可确定程序实体所占内存的字节数。 2.指针变量的定义 对指针变量的定义包括三个内容: (1)指针类型说明,即定义变量为一个指针变量; (2)指针变量名; (3)变量值(指针)所指向的变量的数据类型。

2015/9/15

第6章 指针

《C语言程序设计》

表示定义指针变量

一般形式: 数据类型 * 指针名; 指针的目标变 量的数据类型 注意: 1、int *p1, *p2; 与 int 例

合法标识符

int *p1,*p2; float *q ; static char *name; *p1, p2;

2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量

4、指针变量定义后,变量值不确定,应用前必须先赋值

《C语言程序设计》

6.1 指针与指针变量

6.1.2 指针变量的定义与初始化

说明: P145 (1)“*”表示其后的变量是指针变量,而不是指针变 量名的一部分,即指针变量名是 p1 、 p2 、 p3 ,不是 *p1、*p2、*p3。 (2) 一个指针变量只能指向同类型的变量,如 p2 只 能指向浮点变量,不能时而指向一个浮点变量,时而 又指向一个整型或字符型变量。 (3) 指针变量中只能存放地址,不能将一个非地址 类型的数据(如常数)赋给一个指针变量,但0(NULL)除 外。例如: p1=100; /* 错误 */ p1=NULL; /* 正确*/ (4) 指针变量定义后,如果没有初始化,则变量值 是不确定的,使用前必须先赋值。2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

6.1.2 指针变量的定义与初始化

P145 3.指针变量的初始化 指针定义后,初始值为随机数,因此,使用之前不 仅要定义说明,而且必须赋予具体的值。 给指针变量赋地址值的方法有: 赋值号右侧是地址 在程序执行部分赋值。 不能赋非0常量值。 定义指针变量时初始化赋值。 定义指针变量时初始化赋值的形式为: 类型 *指针变量名 = &变量名,……; 例如: int a; int *p=&a; 或者: int a,*p=&a; 注意:“ & 变量名”中的“变量名”必须在指针变 量名之前定义。2015/9/15

第6章 指针

《C语言程序设计》

– 数据类型 *指针名=初始地址值; 赋给指针变量, 例 int i; 不是赋给目标变量 int *p=&i; 变量必须已说明过 例 int i; 类型应一致 例 int int *p=&i; *p=&i; int i;int *q=p; 用已初始化指 例 main(

) 针变量作初值 { int i; static int *p=&i; 不能用auto变量 .............. 的地址去初始化 } ( ) static型指针

《C语言程序设计》

6.1 指针与指针变量

6.1.3 指针变量的引用

C语言中提供了两个与指针有关的运算符:

P145

1. &:取地址运算符:作用是获得变量所占用的存 储单元的首地址(即该变量的地址)。例如:int a=10,*p;

p=&a;

/* &a表示变量a的地址 */

2. *:指针运算符(或称“间接访问运算符”):作用 是通过指针变量来访问它所指向变量的值 (取数据或存 数据)。例如: printf(“%d\n”,*p); /* 输出指针变量 p 所指向的变量a的值,*p与a等价,即10 */2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

6.1.3 指针变量的引用

说明: 在定义指针变量时,“ * ”表示其后是指针变量; 在执行部分的表达式中,“*”是指针运算符。 &和*都为单目运算符,优先级高于所有双目运算 符,与其他的单目运算符具有相同的优先级和结合性 (右结合性)。 &a不能出现在赋值号的左边。 运算符 & 只能用于变量和数组元素,不能用于表 达式或常量。运算符*只能作用于指针(地址)。 根据 * 运算符的作用, * 运算符和取地址运算符 & 互逆。即: *(&a)==a &(*p)==p2015/9/15

第6章 指针

《C语言程序设计》

6.1 指针与指针变量

6.1.3 指针变量的引用

说明:int a, *p=&a; scanf(“%d”,p); scanf(“%d”,&a);

P146

p、&a与&*p完全等价,即下面3个语句等价:都是地址值

scanf(“%d”,&*p); a、*p与*&a完全等价,即下面3个语句等价:

printf(“%d”,a) ;printf(“%d”,*p) ; printf(“%d”,*&a) ;2015/9/15

都是普通变量值

第6章 指针

《C语言程序设计》

– 直接访问与间接访问 直接访问:按变量名或变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量…... 2000 整型变量i

i=3;

-----直接访问

3 20 10

20042008 2012

变量iPointer2000

指针变量

*iPointer=20;

-----间接访问

…...

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库第6章 指针在线全文阅读。

第6章 指针.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1202821.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: