第8章的 地址和指针.ppt

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

第7讲 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和指针变量的基类型 8.3 给指针变量赋值 8.4 对指针变量的操作 8.5 函数之间地址值的传递 重点和难点 第8章 地址和指针 复习数据类型 短整型(short) 整 型(int) 长整型(long) 浮点型(实型) 单精度型(float) 双精度型(double) 字符类型(char) 枚举类型(enum) 整型 基本类型 构造类型 数组类型 结构体类型(struct) 共用体类型(union) 指针类型 空类型(void) 数据 类型 short int a; float x; a=3; x=3.5; 指针——变量的地址 指针变量——存放指针的变量 p a x 2000 指针 指针变量 …... …... 2000 2001 2002 2005 0 2003 2006 2000 计算机的内存是以字节为单位的一片连续的存储空间,每一个字节都有一个 编号,这个编号就成为内存地址。 变量的地址-----是指该变量所占 存储单元的第一个字节的地址。 3 3.5 8.1 变量的地址和指针 变量的直接访问和间接访问 直接访问数据是指通过变量名直接使用变量数据。 间接访问数据是指通过指针变量去访问其他变量数据。 例 a=3; -----直接访问 指针变量 …... …... 2000 2004 2006 2005 a 10 p 2001 2002 2003 2000 3 例 *p=20; -----间接访问 20 8.2 指针变量的定义和指针变量的基类型 定义指针变量的一般形式如下: 类型名 *指针变量名; 或 类型名 *指针变量名1, *指针变量名2,……; 例如:int *pi; int *pj,*pa; 1. pi,pj,pa都是变量,不过都是指针变量, 定义时在普通变量名的左边加上星号 说明: pi,pj,pa三个指针变量的类型为整型,说明三个变量中只能存放int变量 的地址。这时我们称int是指针变量pi,pj,pa的基类型。 如:double *pd; char *s1,*s2; pd的基类型为double类型, 在指针变量pd中,只能存放double类型变量的地址。 s1和s2的基类型为char类型, 在指针变量s1和s2中,只能存放char类型变量的地址。 8.3 给指针变量赋值 8.3.1 给指针变量赋地址值 例如:int k,*q,*p; /*k为整型变量,q和p都是指针变量。*/ q p k k=1; /*给普通变量赋值*/ 指针变量只能被赋予地址值 q=k; 是用来求出变量的地址。 1 k 知识点: 由于把变量k的地址赋予了指针变量q,q中现在存放的就是 变量k的地址,这时可以说:q指向了变量k。 指针变量之间也可以进行赋值:p=q; k 当我们输出变量k,q,p时,输出的结果为; 1 1245052 1245052 8.3 给指针变量赋值 8.3.2 给指针变量赋“空”值 除了给指针变量赋地址值之外,还可以给指针变量赋一个特殊的值,该值为“空”值。 int *p; p=NULL; int *p; p=0; int *p; p=‘\0’; 注意 此时,指针变量p中不是没有值,而是有一个“空”值。 8.4 对指针变量的操作 8.4.1 通过指针来引用一个存储单元 #include stdio.h main() {int k,*q,*p; k=1; q=k; p=q; printf(“%d\n%d\n%d\n,k,q,p); } 1 1245052 1245052 输出时,变量k为1,而指针变量q和p则为变量k的地址。 #include stdio.h main() {int k,*q,*p; k=1; q=k; p=q; printf(“%d\n%d\n%d\n,k,*q,*p); } 1 k k q k p 1 1 1 访问时,在指针变量前在*(间接访问运算符)则 表示访问该地址中原来的值。 使用指针变量输入数据 当指针变量有了确切的指向目标后,即可使用该指针变量为指向的目标输入数据。 int a,*p; p=a; scanf(%d,p); scanf语句的功能与下列语句等价: scanf(%d,a); 8.4 对指针变量的操作 访问指针所指向的变量 * ——1、定义时,指针类型标识符,表示所定义变量为指针。 2、除此之外,间接访问运算符,代表该指针指向的变量。 ——

文档评论(0)

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

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

1亿VIP精品文档

相关文档