- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
§7.1指针与指针变量§7.2指针变量的定义、初始化与引用§7.3指针变量的使用§7.4指针数组与多级指针§7.5指针类型程序举例第7章指针§7.1指针与指针变量一、指针在C语言所编写的代码中,基本元素除了各种类型的数据、数组之外,还有变量、语句、函数等元素。在代码被执行时,它们都需要被装入到内存储器中,而计算机的内存储器已被划分为一个个的内存单元,存储单元并按照一定的规则编号,这个编号称为存储单元的地址。§7.1指针与指针变量一、指针例:inti=168,charj=A,doublek=3.456766;……168A3.4567660ff9c0ff9d0ff9e0ff9f0ffa00ffa10ffa20ffa30ffa4变量i变量j变量k§7.1指针与指针变量一、地址【例7-1】察看变量地址分析:我们可以通过%x格式,把变量的地址输出出来进行观察。#includestdio.hmain(){ inta=32766,b=-32766,c[10]; unsignedm=6553; floatt=3.4e+37; printf(a=%d\n,a);printf(变量a的地址:%x\n,a); printf(m=%u\n,m);printf(变量m的地址:%x\n,m); printf(t=%e\n,t);printf(变量t的地址:%x\n,t);printf(数组c[12]的地址:%x\n,c);}§7.1指针与指针变量一、指针我们可以看到,同样的程序在不同的编译环境下,系统给相同的变量开设的存储空间是不相同的,即使是在同一个编译环境下,在不同的时期,对同一个变量所赋予的存储空间也是不相同的。系统不仅对变量如此,对其它的基本元素也是一样的,在不同的编译环境下,在不同的运行时期,对同一个基本元素都会分配不同的存储空间,也就是会分配到不同的存储空间地址,为了方便开发程序,于是人们就用指针这一新的数据类型来表达不同的存储单元地址空间了。§7.1指针与指针变量二、指针变量指针变量是一种特殊的变量,它不同于普通的一般变量,对普通变量赋值时,我们可以赋于各种类型的数据,例如,inta=10;floatx=3.141592;而对于指针变量我们只能赋于指针这一特殊类型的数据,这也就是说指针变量所取的值只能为地址。例如,在程序中声明了一个int型的变量a,其值为168,系统为变量a分配的首地址假设为6FDF4H,pa是一个存放变量a地址的指针变量,那么pa所取的值即为6FDF4H。§7.2指针变量的定义、初始化与引用一、指针变量的定义、初始化指针变量定义的形式为:数据类型*指针变量名1[=初始值],*指针变量名2[=初始值],……;例如:inti;floatm;charc;int*pa_1=i;//*pa_1是指向int型变量的指针变量)float*pa_2=m;//*pa_2是指向float型变量的指针char*pa_3=c;//*pa_3是指向char型变量的指针变量§7.2指针变量的定义、初始化与引用二、指针变量的引用指针变量经过初始化就会指向一个普通的变量,通过指针变量我们就可以对所指的变量进行各种操作运算。§7.2指针变量的定义、初始化与引用【例7-2】通过指针变量访问整型变量分析:首先可以声明指针变量,然后通过初始化,将指针变量指向变量。#include<stdio.h>voidmain(){inta,b;int*pointer_1,*pointer_2;a=100;b=10;pointer_1=a;/*把变量a的地址赋给pointer_1*/pointer_2=b;/*把变量b的地址赋给pointer_2*/printf(“%d,,%d\n”,a,b);printf(“%d,,%d\n”,*pointer_1,*pointer_2);}§7.2指针变量的定义、初始化与引用【例7-3】任意输入两个整数a和b,然后按先大后小的顺序输出a和b。#include<stdio.h>voidmain(){in
文档评论(0)