C语言程序设计(第5版)谭浩强.ppt

  1. 1、本文档共533页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计(第5版)谭浩强.pptC语言程序设计(第5版)谭浩强.ppt

C 语言程序设计 第十章 指针 10.2 变量的指针和指向变量的指针变量 ? 定义一个指针变量 指针变量在使用前必须定义,使其指向特定类型 的变量,指针变量存放地址,必须定义为?指针类 型?。 ? 定义的一般形式: 基类型 * 指针变量名 ; 例 int * p1, * p2; ? 基类型:用来指定指针变量可以指向的变量的类型。 float *q ; 将决定指针移动和运算时的移动量。 static char *name; 构成: [ 存储类型 ] 数据类型 注意: ? * :表示该变量为指针类型 1 、 int *p1, *p2; 与 int *p1, p2 ; 2 、指针变量名是 p1,p2 , 不是 *p1,*p2 3 、 指针变量只能指向定义时所规定类型的变量 4 、指针变量定义后, 变量值不确定 ,应用前必须先赋值 < > C 语言程序设计 第十章 指针 ? 进一步理解 & 与 * 运算符: 指针运算符(?间接访问?运算符) 取地址运算符 i_pointer ? 两者关系:互为 逆运算 含义 : 取指针所指向变量的内容 含义 : 取变量的地址 单目运算符 &i_pointer 2000 单目运算符 ? 理解 优先级 : 2 优先级 : 2 结合性 : 自右向左 结合性 : 自右向左 …... 2000 2001 2002 2003 2004 2005 2006 ? 含义 *i_pointer 10 i 整型变量 i 10 i_pointer &i &(*i_pointer) i_pointer = &i = &(*i_pointer) i *i_pointer *(&i) i = *i_pointer = *(&i) 变量 i _pointer 2000 指针变量 < > i_pointer ----- 指针变量,它的内容是地址量 *i_pointer ---- 指针的 目标变量 ,它的内容是数据 &i_pointer --- 指针变量占用内存的地址 …... C 语言程序设计 第十章 指针 ? 指针变量的初始化 一般形式: [ 存储类型 ] 数据类型 * 指针名 = 初始地址值 ; 例 int i; int *p= &i ; 例 例 int i; int *p= int *p= &i ; &i ; int i; int *q= p ; 指针变量赋值: 赋给指针变量, int i, j; 不是赋给目标变量 int *p1, *p2; 变量必须 已说明过 p1=&i; p2=&j ; 类型 应一致 i=3; *p1=5; j=6; *p2=8; < > 2000 3 5 i 例 main( ) 用已初始化指针变量作初值 2002 6 8 j { int i; ┇ static int *p=&i; 2000 p1 2002 p2 .............. 不能用 auto 变量的地址 } ( ? ) 去初始化 static 型指针 C 语言程序设计 第十章 指针 ? 指针变量的引用 例 10.1 通过指针变量访问整型变量 运行结果: #include <stdio.h> a=100, b=10 void main( ) *p1=100, *p2=10 {int a, b, *p1, *p2 ; &a=ffd4, &b=ffd6 p1=ffd4, p2=ffd6 a=100; b=10; &p1=ffd8, &p2=ffda p1=&a; p2=&b; printf(―a=%d, b=%d \ n‖,a, b); printf(―* p1=%d, * p2=%d \ n‖, *p1, * p2); printf(―&a=%x,& b=%x \ n‖,&a, &b); printf(―p1=%x, p2=%x \ n‖, p1, p2); printf(―& p1=%x, &p2=%x \ n‖, &p1, & p2); 100 a } ffd4 10 b ffd6 ffd4 p1 ffd8 < > ffd6 p2 ffda C 语言程序设计 第十章 指针 关于 & 和 * 运算符的进一步说明: * 、 & :优先级同为 2 级, 结合性:从右向左。 1. 若已执行: int a, b, * p1, * p2; p1=&a; p2=&b; a=100; b=10; 则 ① &* p1 ? &a (p1) &* p2 ? &b (p2) ② p2=&* p1 ? p2=&a 2. * & a p1

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6101234030000022

1亿VIP精品文档

相关文档