C语言课件谢丽聪11指针2009章节.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 指针 10.1 地址指针的基本概念 10.2 变量的指针和指向变量的指针变量 10.3 一维数组与 10.4 二维数组的指针(元素的指针,行指针) 10.5 字符串与指针 10.6 针指数组 10.7 指向指针的指针 10.8 函数的指针和指向函数的指针变量 10.9 指针型函数 10.10 main函数的参数 10.11 void指针类型 10.12 指针的数据类型和指针运算小结 10.1 地址指针的基本概念 内存单元的编号也叫做地址,也称为指针。 1、数据在内存中按单元(字节)存放,如整型量占2个单元等,为正确访问,每个内存单元都有编号。 2、内存单元的地址即为指针,其中存放的数据才是该单元的内容。 3、如果用一个变量来存放指针,这种变量称为指针变量,指针变量的值就是某个内存单元的地址即指针。 这种情况称为: P指向变量C,或说P是指向变量C的指针。 在程序中用“*”符号表示“指向”,例如,p代表指针变量,而*p是p所指向的变量c。 10.2 变量的指针、指向变量的指针变量 存放地址(指针)的变量称为指针变量。一个指针变量的值就是某个变量的地址或称为某变量的指针。 例如,i_pointer代表指针变量,而*i_pointer是i_pointer所指向的变量。 下面语句作用相同: i=3; *i_pointer=3; 若变量1存放变量2的指针, 则称变量1为指向变量2的指针变量 例1:? int j=153,k=-42,m=12561; int *p; P=j 指针变量p为 指向变量j地址的变量 一、定义一个指针变量 格式:类型说明符 *变量名; 例如: int *p2; float *p3; char *p4; 至于p2、p3、p4究竟指向哪一个变量, 应由向p2、p3、p4赋予的地址来决定。 二、指针变量的引用 指针变量使用之前也要定义说明,而且必须赋予具体的值。指针变量的赋值只能赋予地址。 两个有关的运算符: 1):取地址运算符。 2)*:指针运算符或称“间接访问” 运算符。 如: j表示变量j的地址——2000 *p表示指针变量p所指向的变量 ——j 三、指针变量初始化和赋值: int j=153,k=-42,m=12561,*p=j,*q;q=k; 表示定义p、q为指针变量(*p、*q为int型变量) (1)? 指针变量初始化的方法: int a; int *p=a; (2)? 赋值语句的方法: int a; int *p; p=a; 1)不能把一个数赋予指针变量: int *p; p=1000; 2)被赋值的指针变量前不能再加“*”说明符: *p=a 3)可以通过指针变量ip间接访问变量i, 例如: x=*ip; ???? x=i; int i,j,*p1,*p2; ? i=a; ? j=b; p1=i; p2=j; 这时赋值表达式: p2=p1 就使p2与p1指向同一对象i, 此时*p2就等价于i,而不是j, 如果执行如下表达式: *p2=*p1; 则表示把p1指向的内容赋给p2所指的区域, 此时就变成图所示 四、 若指针变量p指向变量j(即p=j) 则有: 1、*j ——*(j) ——*p——j 2、*p——(*p)——j——p 指针变量可出现在表达式中。 设:int x,y,*px=x; 指针变量px指向整数x,则*px可出现在x能出现的任何 地方。例如: y=*px+5;? y=++*px;? *px++;? 例、 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); } 例: main(){ int a=10,b=20,s,t,*pa,*pb; pa=a; pb=b; s=*pa+*pb; t=*pa**pb;

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档