- 1、本文档共105页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指 针 地址和指针的概念 系统根据程序中定义的变量类型,分配一定长度的空间。 1、内存区的每一个字节有一个编号,这就是“地址”。 ?????? 地址和指针的概念 2.对变量值的存取有两种方式: (1)直接访问方式:按变量地址存取变量的方式。?? (2) 间接访问方式:将一个变量的地址存放到另一个变量中,那么存放变量地址的变量称作指针变量。??? 地址和指针的概念 ??? 变量i_pointer中存放的是地址,这种变量叫指针变量。 指针变量中存放哪个变量的地址,就称此指针变量指向谁。 ??? 一个变量的地址称为该变量的“指针”。 ??? 变量的指针就是变量的地址。 ??? 存放变量地址的变量是指针变量,用来指向另一个变量。 变量的指针和指向变量的指针变量 ??? 为了表示指针变量和它所指向变量之间的联系,在程序中用“*”符号表示“指向”。 也可以这样理解:*i_pointer=*i=i。下面两个语句的意思相同:1)i=3;2)*i_pointer=3; 变量的指针和指向变量的指针变量 1.定义一个指针变量 定义指针变量的一般形式为: 基类型 *指针变量名 如下都是合法的定义:float *pointer_3;char *pointer_4; 要想使指针变量指向哪一个变量应赋值如下:pointer_1=i;pointer_2=j; 变量的指针和指向变量的指针变量 注意:(1) 指针变量前面的“*”,表示该变量的类型为指针类型。(2) 在定义指针变量时必须指定基类型。指针变量只能存放所定义类型的一般变量的地址。 ?(3)定义后,系统为指针变量分配内存单元,用来存放地址。 (4)定义后,当存放了某一变量的地址,才是有指向的。 (5)指针变量只能存放地址。 变量的指针和指向变量的指针变量 2. 指针变量的引用 有两个有关的运算符:(1) :取地址运算符。(2) *:指针运算符(或称“间接访问”运算符) 例10.1 通过指针变量访问整型变量。main(){int a,b;?int *pointer_1,*pointer_2;?a=100;b=10; 变量的指针和指向变量的指针变量 ?pointer_1=a;?pointer_2=b;?printf(%d,%d\n,a,b);?printf(%d,%d\n,*pointer_1,*pointer_2);} 变量的指针和指向变量的指针变量 说明:(1) 如果已执行了“pointer_1=a;”语句,若有*pointer_1相当于pointer_1即a 如果有pointer_2=*pointer_1;它的作用是将a赋给pointer_2。 (2) *a的含义是什么?相当于a。 (3) (*pointer_1)++相当于a++。 变量的指针和指向变量的指针变量 例10.2 输入a和b两个整数,按先大后小的顺序输出a和b。main(){int *p1,*p2,*p,a,b;?scanf(%d,%d,a,b);?p1=a;?p2=b;?if(ab)?{p=p1;p1=p2;p2=p;}?printf(a=%d,b=%d\n,a,b);?printf(max=%d,min=%d\n,*p1,*p2);} 变量的指针和指向变量的指针变量 变量的指针和指向变量的指针变量 3. 指针变量作为函数参数 函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。例 10.3 将例10.2用函数的形式处理。swap(int *p1,int *p2){int p;?p=*p1;?*p1=*p2;?*p2=p;} 变量的指针和指向变量的指针变量 main(){ int a,b;int *pointer_1,*pointer_2;scanf(%d,%d,a,b);pointer_1=a;pointer_2=b;if(ab)swap(pointer_1,pointer_2);printf(a=%d,b=%d\n,a,b);} 变量的指针和指向变量的指针变量 变量的指针和指向变量的指针变量 swap(int x,int y){int temp;?temp=x;?x=y;?y=temp;} main() {int a,b;scanf(%d,%d,a,b);if(ab)swap(a,b);printf(a=%d,b=%d\n,a,b);} 变量的指针和指向变量的指针变量 swap(int *p1,int *p2){int *p;??p=p1;??p1=p2;??p2=p;}main(
您可能关注的文档
- 中药饮片各论 第2章.ppt
- 2010第1讲-材料概论.ppt
- 4第四章基本系统2(16h).ppt
- 资源回收工程简介.ppt
- 第1章_数据库基本知识.ppt
- 第2章 可编程序控制器的基础知识.ppt
- 李宁店铺销售人员系列培训之一岗前基础.ppt
- 第五章--数字基带传输系统.ppt
- 第七章 氨基酸代谢06级用.ppt
- 第二章 基本图形.ppt
- 最新部编版二年级上册道德与法治 期中测试卷(含答案)word版.docx
- 最新部编版二年级上册道德与法治 期中测试卷(综合题)word版.docx
- 最新部编版二年级上册道德与法治 期中测试卷(中心小学).docx
- 最新部编版二年级上册道德与法治 期中测试卷附答案(考试直接用).docx
- 最新部编版二年级上册道德与法治 期中测试卷(名师推荐)word版.docx
- 最新部编版二年级上册道德与法治 期中测试卷(夺冠).docx
- 最新部编版二年级上册道德与法治期中测试卷【全国通用】.docx
- 心理健康课知识课件视频.pptx
- 最新部编版二年级上册道德与法治 期中测试卷(名校卷)word版.docx
- 最新部编版二年级上册道德与法治 期中测试卷(历年真题).docx
文档评论(0)