- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务9 指针的使用 目 录 上一页 下一页 返 回 VC++ 结构化程序设计 讲授:李学刚 常州信息职业技术学院 1 1、掌握指针变量的定义,能正确引用指针变量,确定指针变量的指向; 2、掌握和*运算符的使用及指针运算; 3、掌握指针作为函数参数的几种形式,能利用指针编写函数解决实际问题; 4、掌握使用指针处理数组及字符串的方法; 5、了解返回指针值的函数和main()函数的参数。 教 学 目 标 任务9-1 指针变量的定义与使用 一、指针与指针变量 1、获取变量的取地址 ①变量的地址——指针:系统根据变量的数据类型为其分配相应长度的存储空间,变量的存储空间在内存中的起始地址称为这个变量的地址,也称为指针。 ②取地址运算的一般形式:变量名 其中是取地址运算符,是单目运算,右结合。 功能:取其后变量的地址。 2、访问变量的两种方式 1)直接访问:通过变量名或变量的地址来访问变量的方式称为直接访问。 2)间接访问:把一个变量的地址存放到另一个变量中,通过对另一个变量的访问来访问这个变量,这种访问变量的方式称为间接访问。 2 例如:printf(%d,a);/*通过变量名*/ scanf(%d,a);/*通过变量的地址*/ 物品 钥匙 一个抽屉 另一个抽屉 2 2 3、指针变量 ①指针变量:把存放地址的变量称为指针变量。指针变量的值为地址即指针。 ②指向:如果指针变量p中存放的是变量a的地址,即指针变量p的值为变量a的地址,则称变量p指向变量a。 二、指针变量的定义 1、一般形式 [存储类别] 数据类型 *指针变量名; 2、说明 ①存储类别规定了指针变量的存储类别; ②数据类型规定了指针变量所能指向的变量的类型,称为指针变量的基类型; ③*表示后面的变量是指针变量,这是与普通变量定义的区别。 3 返 回 例如:int *p; p为指针变量,它的基类型为int 三、确定指针变量的指向 指针变量定义后,必须确定指针变量的指向。 1、给指针变量赋值; 2、给指针变量初始化; 3、给指针变量赋空值。 四、指针运算符 一般形式: *指针变量 其中*为指针运算符,优先级别和结合方向与相同。 作用:求指针变量所指向的变量的值,即指针变量所指向的内存单元的内容。 说明 1)如果int a,*p=a; 则*p与a等价,即*p也是一个变量,就是p所指向的变量; 2)*与互为逆运算; 3)运算符“*”后面必须是指针变量,而不能是普通变量。 例如:int a,b[5],*p,*q,*r,*s; float *t; p=a;/*确定p指向变量a */ t=a; /*t的基类型与a不同*/ × q=b; /*确定q指向数组b,相当于q=b[0]*/ r=a; /*把a的值赋给r*/ × r=p; /*确定r指向p指向的变量a*/ s=1000; /*把1000赋给s*/ × s=b[2]; /*确定s指向数组元素b[2]*/ t=s; /*t与s的基类型不同*/ × 例如: int a,*p=a; √ 相当于:int a,*p; p=a; int *p=a,a; × int a[3],*p=a,*q=a[2]; √ 相当于:int a[3],*p,*q;p=a; q=a[2]; int a,*p,*q=p; × int a,*p=a;float *q=p; × 例如: int a=3,*p=a; printf(%d,%d,a,*p); 输出结果为:3,3 说明 *p与a 等价 如果int a,*p=a; 则*a==*(a)==*p==a,*p==(*p)==a==p。 即*a==a,*p==p。 4 4 4 4 4 例如:int *p; p=NULL;(或p=0;) 其中NULL是一个符号常量,代表整数0,在stdio.h中定义。 此时,p是一个空指针,不指向任何单元。 注:不能将一个非零数值赋给指针变量。 4 5 5 5 5 五、指针变量的引用 1、引用指针变量指向的变量; 2、直接引用指针变量。 例1 两个指针变量指向同一变量。 例2 交换两个指针变量的指向。 例3 交换两个指针变量所指向的变量的值。 六、指针运算 1、对指向单元的相邻单元操作,指针不移动; 一般形式:指针变量+整型常量 指针变量-整型常量 2、移动指针(指针自增或自减) 一般形式:后缀形式:指
文档评论(0)